Android调用图库选择本地图片的功能
2015-05-22 22:05
239 查看
转自:http://www.2cto.com/kf/201212/179522.html
先上实现代码:
![](http://up.2cto.com/2012/1227/20121227100433445.jpg)
”分享本地图片“按钮事件:
[java]
//选择图片,调用图库
bt4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra("crop", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, 2);
}
});
点击之后跳转到图库:
![](http://up.2cto.com/2012/1227/20121227100434110.jpg)
这是一个回调函数,选择完图片,第一个if 判断是否返回成功,第二个if 判断requestCode和上面 startActivity(),里的参数相同,就获取图片 ,注意:在上面按钮里一定要加上这句话: intent.putExtra("return-data", true); 否则返回的data 为空,稍后详 细讲解参数的作用
[html]
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
System.out.println("requestCode"+requestCode);
if (requestCode == 2) {
Uri uri = data.getData();
System.out.println(uri.getPath());
ContentResolver cr = this.getContentResolver();
try {
bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));
MCShareLaunchShareHelper.shareContentWithBitmap("测试分享本地图片", bmp, "your share url", "", MoxunActivity.this);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
回调函数跳转返回成功,跳转到分享界面(回调函数中这句话 是我调用的摩讯的分享SDK的功能,跟本文无关 MCShareLaunchShareHelper.shareContentWithBitmap("测试分享本地图片", bmp, "your share url", "", MoxunActivity.this);), 中部那个android图片就是所选的那张图片
![](http://up.2cto.com/2012/1227/20121227100434531.jpg)
Android中 调用图库选择图片的参数详解
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);
先上实现代码:
![](http://up.2cto.com/2012/1227/20121227100433445.jpg)
”分享本地图片“按钮事件:
[java]
//选择图片,调用图库
bt4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra("crop", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, 2);
}
});
点击之后跳转到图库:
![](http://up.2cto.com/2012/1227/20121227100434110.jpg)
这是一个回调函数,选择完图片,第一个if 判断是否返回成功,第二个if 判断requestCode和上面 startActivity(),里的参数相同,就获取图片 ,注意:在上面按钮里一定要加上这句话: intent.putExtra("return-data", true); 否则返回的data 为空,稍后详 细讲解参数的作用
[html]
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
System.out.println("requestCode"+requestCode);
if (requestCode == 2) {
Uri uri = data.getData();
System.out.println(uri.getPath());
ContentResolver cr = this.getContentResolver();
try {
bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));
MCShareLaunchShareHelper.shareContentWithBitmap("测试分享本地图片", bmp, "your share url", "", MoxunActivity.this);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
回调函数跳转返回成功,跳转到分享界面(回调函数中这句话 是我调用的摩讯的分享SDK的功能,跟本文无关 MCShareLaunchShareHelper.shareContentWithBitmap("测试分享本地图片", bmp, "your share url", "", MoxunActivity.this);), 中部那个android图片就是所选的那张图片
![](http://up.2cto.com/2012/1227/20121227100434531.jpg)
Android中 调用图库选择图片的参数详解
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);
相关文章推荐
- Android开发之调用相机拍照与本地图库选择图片
- Android实现拍照,以及从相册选择图片裁剪功能同时保存在本地
- Android调用本地相册选择图片并剪切后展示和缓存
- Android中ImageView实现选择本地图片并显示功能
- android中调用系统功能 来显示本地相册图片 拍照 视频 音频功能
- Android 调用图库选择图片实现和参数详解
- 调用Android系统摄像头进行拍照以及从图库选择图片
- Android调用相机拍照并返回路径和调用系统图库选择图片
- Android 调用系统相机拍照(适配7.0)、从图库选择图片、从数据库读取联系人信息、相册图片、扫描文件
- Android中 调用图库 选择 图片的参数理解
- Android调用手机自带图库选择图片
- 在Android 中调用选择图片、视频、添加音频、录音、拍摄视频、拍照等其他的功能
- 调用Android中相机或图库选择图片并剪切
- Android多媒体之调用摄像头和从本地相册中选择图片
- 在Android 中调用选择图片、视频、添加音频、录音、拍摄视频、拍照等其他的功能
- react native结合Android原生实现调用相机或图库选择图片设置头像
- Android调用相机拍照并返回路径和调用系统图库选择图片
- Android 从 Android 本地图库选择多个图片
- Android 开发 调用图库选择图片实现和参数详解
- Android 开发 调用图库选择图片实现和参数详解