你的位置:首页 > 软件开发 > 操作系统 > android 开启本地相册选择图片并返回显示

android 开启本地相册选择图片并返回显示

发布时间:2015-04-23 20:00:23
.java 1 package com.jerry.crop; 2 3 import java.io.File; 4 5 import android.app.Activity; 6 import android.content.Intent; 7 import androi ...

android 开启本地相册选择图片并返回显示

.java

 1 package com.jerry.crop; 2  3 import java.io.File; 4  5 import android.app.Activity; 6 import android.content.Intent; 7 import android.graphics.Bitmap; 8 import android.net.Uri; 9 import android.os.Bundle; 10 import android.os.Environment; 11 import android.provider.MediaStore; 12 import android.view.View; 13 import android.widget.ImageView; 14 import android.widget.Toast; 15  16 public class MainActivity extends Activity { 17  18   private static final int PHOTO_REQUEST_CAREMA = 1;// 拍照 19   private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择 20   private static final int PHOTO_REQUEST_CUT = 3;// 结果 21  22   private ImageView iv_image; 23  24   /* 头像名称 */ 25   private static final String PHOTO_FILE_NAME = "temp_photo.jpg"; 26   private File tempFile; 27  28   @Override 29   protected void onCreate(Bundle savedInstanceState) { 30     super.onCreate(savedInstanceState); 31     setContentView(R.layout.activity_main); 32     this.iv_image = (ImageView) this.findViewById(R.id.iv_image); 33   } 34  35   /* 36    * 从相册获取 37   */ 38   public void gallery(View view) { 39     // 激活系统图库,选择一张图片 40     Intent intent = new Intent(Intent.ACTION_PICK); 41     intent.setType("image/*"); 42     // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_GALLERY 43     startActivityForResult(intent, PHOTO_REQUEST_GALLERY); 44   } 45  46   /* 47    * 从相机获取 48   */ 49   public void camera(View view) { 50     // 激活相机 51     Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 52     // 判断存储卡是否可以用,可用进行存储 53     if (hasSdcard()) { 54       tempFile = new File(Environment.getExternalStorageDirectory(), 55           PHOTO_FILE_NAME); 56       // 从文件中创建uri 57       Uri uri = Uri.fromFile(tempFile); 58       intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 59     } 60     // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CAREMA 61     startActivityForResult(intent, PHOTO_REQUEST_CAREMA); 62   } 63  64   /* 65    * 剪切图片 66   */ 67   private void crop(Uri uri) { 68     // 裁剪图片意图 69     Intent intent = new Intent("com.android.camera.action.CROP"); 70     intent.setDataAndType(uri, "image/*"); 71     intent.putExtra("crop", "true"); 72     // 裁剪框的比例,1:1 73     intent.putExtra("aspectX", 1); 74     intent.putExtra("aspectY", 1); 75     // 裁剪后输出图片的尺寸大小 76     intent.putExtra("outputX", 250); 77     intent.putExtra("outputY", 250); 78  79     intent.putExtra("outputFormat", "JPEG");// 图片格式 80     intent.putExtra("noFaceDetection", true);// 取消人脸识别 81     intent.putExtra("return-data", true); 82     // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT 83     startActivityForResult(intent, PHOTO_REQUEST_CUT); 84   } 85  86   /* 87    * 判断sdcard是否被挂载 88   */ 89   private boolean hasSdcard() { 90     if (Environment.getExternalStorageState().equals( 91         Environment.MEDIA_MOUNTED)) { 92       return true; 93     } else { 94       return false; 95     } 96   } 97  98   @Override 99   protected void onActivityResult(int requestCode, int resultCode, Intent data) {100     if (requestCode == PHOTO_REQUEST_GALLERY) {101       // 从相册返回的数据102       if (data != null) {103         // 得到图片的全路径104         Uri uri = data.getData();105         crop(uri);106       }107 108     } else if (requestCode == PHOTO_REQUEST_CAREMA) {109       // 从相机返回的数据110       if (hasSdcard()) {111         crop(Uri.fromFile(tempFile));112       } else {113         Toast.makeText(MainActivity.this, "未找到存储卡,无法存储照片!", 0).show();114       }115 116     } else if (requestCode == PHOTO_REQUEST_CUT) {117       // 从剪切图片返回的数据118       if (data != null) {119         Bitmap bitmap = data.getParcelableExtra("data");120         this.iv_image.setImageBitmap(bitmap);121       }122       try {123         // 将临时文件删除124         tempFile.delete();125       } catch (Exception e) {126         e.printStackTrace();127       }128 129     }130 131     super.onActivityResult(requestCode, resultCode, data);132   }133 }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:android 开启本地相册选择图片并返回显示

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录