Android从相机或相册获取图片裁剪
16lz
2021-01-23
package com.only.android.app;import java.io.File;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;import android.os.SystemClock;import android.provider.MediaStore;import android.view.View;import android.widget.Button;import android.widget.ImageView;import com.only.android.R;public class CopyOfImageScaleActivity extends Activity implements View.OnClickListener {/** Called when the activity is first created. */private Button selectImageBtn;private ImageView imageView;private File sdcardTempFile;private AlertDialog dialog;private int crop = 180;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.imagescale);selectImageBtn = (Button) findViewById(R.id.selectImageBtn);imageView = (ImageView) findViewById(R.id.imageView);selectImageBtn.setOnClickListener(this);sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_" + SystemClock.currentThreadTimeMillis() + ".jpg");}@Overridepublic void onClick(View v) {if (v == selectImageBtn) {if (dialog == null) {dialog = new AlertDialog.Builder(this).setItems(new String[] { "相机", "相册" }, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {if (which == 0) {Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");intent.putExtra("output", Uri.fromFile(sdcardTempFile));intent.putExtra("crop", "true");intent.putExtra("aspectX", 1);// 裁剪框比例intent.putExtra("aspectY", 1);intent.putExtra("outputX", crop);// 输出图片大小intent.putExtra("outputY", crop);startActivityForResult(intent, 101);} else {Intent intent = new Intent("android.intent.action.PICK");intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");intent.putExtra("output", Uri.fromFile(sdcardTempFile));intent.putExtra("crop", "true");intent.putExtra("aspectX", 1);// 裁剪框比例intent.putExtra("aspectY", 1);intent.putExtra("outputX", crop);// 输出图片大小intent.putExtra("outputY", crop);startActivityForResult(intent, 100);}}}).create();}if (!dialog.isShowing()) {dialog.show();}}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) {if (resultCode == RESULT_OK) {Bitmap bmp = BitmapFactory.decodeFile(sdcardTempFile.getAbsolutePath());imageView.setImageBitmap(bmp);}}}
更多相关文章
- Android 从网络加载图片
- android camera2 api点击图片实现聚焦
- android 读取sd卡中的图片
- Android drawableleft如何设置图片大小
- android自带图片资源图标一览,android.R.drawable
- ImageView设置图片大小
- Android简单图片浏览器
- android中图片倒影、圆角效果重绘