话不多说。。。直接上源代码


package com.ljz.test.main;


import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Menu;


public class MainActivity extends Activity
{


@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
//这个参数是确定要选择的内容为图片
intent.setType("image/*");
//这个参数 不太懂,唯一知道的是:设置了参数,就会调用裁剪,如果不设置,就会跳过裁剪的过程。
intent.putExtra("crop", "true");
//这个是裁剪时候的 裁剪框的 X 方向的比例。
intent.putExtra("aspectX", 1);
//同上Y 方向的比例. (注意: aspectX, aspectY ,两个值都需要为 整数,如果有一个为浮点数,就会导致比例失效。)
intent.putExtra("aspectY", 1);
//返回数据的时候的 X 像素大小。
intent.putExtra("outputX", 80);
//返回的时候 Y 的像素大小。
intent.putExtra("outputY", 80);
//是否要返回值。 一般都要。
intent.putExtra("return-data", true);
startActivityForResult(intent, 0);
}


@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
System.out.println(resultCode);
Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");
if( cameraBitmap == null )
{
System.out.println("null");
}
else
{
System.out.println("not null");
}
super.onActivityResult(requestCode, resultCode, data);
}


}


关于源代码的细化说明:

网上有不少文章说怎么调用图库去选择并裁剪图片,却对这些参数说的比较少。 今天把看懂的一些参数总结一下:


Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);

intent.setType("image/*"); //这个参数是确定要选择的内容为图片

intent.putExtra("crop", "circle"); //这个参数 不太懂,唯一知道的是:设置了参数,就会调用裁剪,如果不设置,就会跳过裁剪的过程。
intent.putExtra("aspectX", 33); //这个是裁剪时候的 裁剪框的 X 方向的比例。

intent.putExtra("aspectY",43); //同上Y 方向的比例. (注意: aspectX, aspectY ,两个值都需要为 整数,如果有一个为浮点数,就会导致比例失效。)

//设置aspectX 与 aspectY 后,裁剪框会按照所指定的比例出现,放大缩小都不会更改。如果不指定,那么 裁剪框就可以随意调整了。

intent.putExtra("outputX", 50); //返回数据的时候的 X 像素大小。

intent.putExtra("outputY", 100); //返回的时候 Y 的像素大小。

//以上两个值,设置之后会按照两个值生成一个Bitmap, 两个值就是这个bitmap的横向和纵向的像素值,如果裁剪的图像和这个像素值不符合,那么空白部分以黑色填充。


intent.putExtra("noFaceDetection", true); // 是否去除面部检测, 如果你需要特定的比例去裁剪图片,那么这个一定要去掉,因为它会破坏掉特定的比例。


intent.putExtra("return-data", true); //是否要返回值。 一般都要。

startActivityForResult(intent, 1);





更多相关文章

  1. Android RectF类的构造函数参数说明
  2. android 广播传参数
  3. Android canvas clip 参数解释
  4. build.prop生成及参数解析
  5. Android -- android activity 各种布局方式以及相关参数
  6. 动态修改Android参数信息的方法绕过改机检测
  7. android 如何优雅地给Activity和Fragement传入参数
  8. Android中系统设置参数改变监听(以时间同步为例)

随机推荐

  1. Android 高仿QQ 登陆界面
  2. Android Shareperferences使用
  3. Android 坐标系统
  4. Android两种 旋转Bitmap方法
  5. Android Bluetooth Stream Non-blocking
  6. Android 程序优化
  7. ANDROID NDK makefile 链接静态库的方法
  8. android Studio导入source文件
  9. Android UI 开源组件
  10. Android平台上部署OSGI