相机相册裁剪

权限

<uses-sdk
    android:minSdkVersion="18"
    android:targetSdkVersion="18" />

布局

<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="获取相机图片" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="获取相册图片" />

Mainactivity
public class MainActivity extends Activity implements OnClickListener {

private ImageView image;

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	image = (ImageView) findViewById(R.id.image);
	findViewById(R.id.button1).setOnClickListener(this);
	findViewById(R.id.button2).setOnClickListener(this);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	super.onActivityResult(requestCode, resultCode, data);
	switch (requestCode) {
	case 0://5.判断请求码
		// 6得到拍摄的照片
		Bitmap bitMap = data.getParcelableExtra("data");
		//7 设置给imageView
		image.setImageBitmap(bitMap);

		break;
case 1:
		//【4】得到图片路径
		Uri uri = data.getData();
		//【5】设置图片

// image.setImageURI(uri);
startActivityForResult(crop(uri), 2);
break;
case 2:
// 从返回值中直接获取bitmap
Bitmap bmp = (Bitmap) data.getExtras().get(“data”);
image.setImageBitmap(bmp);
break;
}
}

@Override
public void onClick(View v) {
	switch (v.getId()) {
	case R.id.button1:
		//获取相机
		//2。相机的隐式回传意图
		Intent intent= new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		//3.添加意图
		intent.addCategory("android.intent.category.DEFAULT");
		//4.回传(注意 请求码必须1001 )
		startActivityForResult(intent,0);

		break;

	case R.id.button2:
		//获取相册
		//【1】设置相册的意图(权限)
		Intent intent1 = new Intent(Intent.ACTION_PICK);
		//【2】设置显式MIME数据类型
		intent1.setType("image/*");
		//【3】跳转回传
		startActivityForResult(intent1, 1);
		break;

	}

}
private Intent crop(Uri uri) {
	// 裁剪图片意图
	Intent intent = new Intent("com.android.camera.action.CROP");
	// 设置裁剪的数据源和数据类型
	intent.setDataAndType(uri, "image/*");
	// 可裁剪
	intent.putExtra("crop", "true");
	// 裁剪框的比例,1:1
	intent.putExtra("aspectX", 1);
	intent.putExtra("aspectY", 1);
	// 裁剪后输出图片的尺寸大小
	intent.putExtra("outputX", 250);
	intent.putExtra("outputY", 250);
	// 图片格式
	intent.putExtra("outputFormat", "JPEG");
	// 必须加,否则返回值中找不到返回的值
	intent.putExtra("return-data", true);// 若为true则表示返回数据
	 return intent;
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值