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


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启动过程的Zygote进程
  2. Android相机、图册demo
  3. Android自定义View之一:初探实例
  4. Android(安卓)am/pm命令用法
  5. Android(安卓)RectF类的构造函数参数说明
  6. Android(安卓)- View的绘制流程一(measure)
  7. android中文api(89)――ViewManager
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. Python技巧匿名函数、回调函数和高阶函数

随机推荐

  1. Android在未来的发展
  2. 使用android中drawline函数无法绘制水平
  3. Android内核开发:理解和掌握repo工具(含被
  4. Android(安卓)日历开发教程[四]
  5. Android坐标系分析
  6. 【Android系列】—Android世界全景观
  7. 18、ESC/POS指令集在android设备上使用实
  8. Android扫车牌号识别技术SDK
  9. Android中的时间自动更新
  10. Android对Linux内核的改动你知道多少