Android选取相册图片并裁剪

前言

Android应用中经常会遇到上传相册图片的需求,这里记录一下如何进行相册图片的选取和裁剪。

相册选取图片

1. 激活相册或是文件管理器,来获取相片,代码如下:

	private static final int TAKE_PICTURE_FROM_ALBUM = 1;
	private void takePictureFromAlbum() {
		Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
		intent.setType("image/*");
		startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM);
	}

2. 通过startAcitivityForResult()方法,我们可以在onAcitivityResult()中来获取图片的URI,然后将图片的URI传递给图片裁剪函数,代码如下:

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (resultCode == Activity.RESULT_OK) {
			switch (requestCode) {
			case TAKE_PICTURE_FROM_ALBUM:
				if (data != null) {
					cropPictureFromAlbum(data.getData());
				}
				break;
			case PICTURE_CROP_CODE:
				if (data != null) {
					// 这是裁剪后图片的bitmap
					Bitmap bitmap = data.getParcelableExtra("data");
				}
				break;
			default:
				break;
			}
		}
	}

	private static final int TAKE_PICTURE_FROM_ALBUM = 1;

	private void takePictureFromAlbum() {
		Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
		intent.setType("image/*");
		startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM);
	}

	private static final int PICTURE_CROP_CODE = 2;

	private void cropPictureFromAlbum(Uri pictureUri) {
		Intent intent = new Intent("com.android.camera.action.CROP");
		intent.setDataAndType(pictureUri, "image/*");
		intent.putExtra("crop", "true");
		// 裁剪框比例
		intent.putExtra("aspectX", 1);
		intent.putExtra("aspectY", 2);

		// 裁剪后输入图片的尺寸大小
		intent.putExtra("outputX", 300);
		intent.putExtra("outputY", 300);

		// 取消人脸识别
		intent.putExtra("noFaceDetection", true);

		intent.putExtra("return-data", true);

		startActivityForResult(intent, PICTURE_CROP_CODE);
	}

3. 在onActivityResult里,通过data.getParcelableExtra("data")可以获取图片裁剪之后的bitmap,之后就可以将bitmap赋值给图片控件了。

时间: 2024-11-03 20:59:21

Android选取相册图片并裁剪的相关文章

Android笔记之 图片自由裁剪

前言--项目中需要用到对用户头像的裁剪和上传功能.关于裁剪,一开始是想自己来做,但是觉得这个东西应该谷歌有开发吧,于是一搜索官方文档,果然有.于是,就果断无耻地用了Android自带有关于照片的自由裁剪.因为时间太紧,虽然不太华丽,但是胜在能用,节省时间嘛. 具体是通过 Intent的action来实现的. 关键代码如下: public void imageCut(Uri uri) { Intent intent = new Intent("com.android.camera.action.C

在Android中实现图片的裁剪

    本实例的功能室将用户选择的图片裁剪后放入ImagView,布局文件是个Button和ImageView.为了图片的正常显示,我们在裁剪后先将裁剪好的图片先存放到SD卡中,这样就能在以后开启应用的时候直接调用了. main_activity.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.androi

android选择本地图片并裁剪

本文使用Android原生的选择和裁剪功能.下面是代码: public class PickAndCropActivity extends AppCompatActivity implements View.OnClickListener { public static final int REQUEST_CODE_PICK_IMG = 1; public static final int REQUEST_CODE_CROP_IMG = 2; /** * ImageView展示选择的图片和裁剪得

Android选取相机、相册图片进行裁剪,并更新UI

demo源码:http://download.csdn.net/detail/u010778159/8648701 效果图: 界面非常的简单,只有一个imageView,通过点击该ImageView,从相册中选取照片,或拍照,将得到的照片按要求进行裁剪,然后将裁剪后的照片更新到ImageView中. 现在,来看一下工程的xml,和.java文件: 有两个xml文件,main.xml是进入app时的主页面,有一个ImageView select_pic_layout.xml是点击ImageView

android选取本地图片及关于图片压缩上传问题

<span style="font-size:18px;">在一个项目里面,有一个需求是让用户自己选择图片,然后上传到服务器.看似一个很简单的需求,就是选择图片,把图片装好,然后通过网络请求上传到后台,OK.但是事实并非如此,因为我们可以android项目,他是open的,他有更多的可能性,当然你也会遇到更多古灵精怪的问题.</span> 获取图片有3种方法,一是自己用surface控件,利用镜头来获取图片:二是调用系统相机,并且返回拍到的图片:三是直接在利用图

Android显示相册图片和相机拍照

首先看最重要的MainActive类: 1 public class MainActivity extends AppCompatActivity { 2 3 private final int FROM_ALBUM = 1;//表示从相册获取照片 4 private final int FROM_CAMERA = 2;//表示从相机获取照片 5 private ImageView imageView; 6 7 @Override 8 protected void onCreate(Bundle

Android获取相册图片

1. AlertDialog的使用 2. 显示和隐式意图的区别 3. 相册页面的跳转 4. 选择完成后返回图片的获取 -------------------------------------------------------------- 工程源码: -------------------------------------------------------------- 1. AlertDialog的使用 2. 显示和隐式意图的区别 3. 相册页面的跳转 4. 选择完成后返回图片的获取

android 删除相册图片并同步到图库

private void deleteImage(String imgPath) { ContentResolver resolver = getContentResolver(); Cursor cursor = MediaStore.Images.Media.query(resolver, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Images.Media._ID}, MediaStore.Im

Android 拍照图片选取与图片剪裁

最近从以前的项目中扒下来一个常用的模块,在这里有必要记录一下的,就是android上获取图片以及裁剪图片,怎么样?这个功能是不是很常用啊,你随便打开一个App,只要它有注册功能都会有设置人物头像的功能,尤其在内容型的app中更为常见,那么这些功能是怎么实现的呢?今天,在这里就记录一下好了,防止以后的项目中也会用到,就直接拿来用好了. 1.通过拍照或者图册获取图片(不需要剪裁) 这种获取图片的方式就比较次了,因为不设置图片的剪裁功能,有可能因为图片过大,导致OOM,但是这种方式也是有必要讲一下的,