开启相机,读取本地相册实现

小菜鸟战斗机 2018-3-27 184

本文主要实现如何打开相机把照的图片展示,还有就是读取本地相册,把选取中的图片返回。

第一步:  权限声明,一个是相机权限一个是读取权限

[java] view plain copy
  1. <uses-permission android:name="android.permission.CAMERA"/>  
  2. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>  
第二步:布局文件   两个Button  分别是打开摄像头的 读取本地相册

                              一个ImageView 展示返回的图片


第三步:实现

手机照相代码如下:

[java] view plain copy
  1. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
  2.         startActivityForResult(intent, 100);  
通过Intent 跳转到手机的摄像头

然后在onActivityResult 回调里面接收照相的图片

[java] view plain copy
  1.  @Override  
  2.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  3. //        super.onActivityResult(requestCode, resultCode, data);  
  4.         if (requestCode == 100) {  
  5.             //获取照片数据  
  6.             Bitmap camera = data.getParcelableExtra("data");  
  7.             iv1.setImageBitmap(camera);  
  8.         }  
  9. }  

懒得截图了,,,很简单

下面就是打开手机相册

[java] view plain copy
  1. Intent intent = new Intent(Intent.ACTION_GET_CONTENT);  
  2. intent.setType("iamge/*");  
  3. startActivityForResult(intent , 200);  

然后同样在回调里面:

[java] view plain copy
  1.  @Override  
  2.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  3. //        super.onActivityResult(requestCode, resultCode, data);  
  4.         if (requestCode == 100) {  
  5.             //获取照片数据  
  6.             Bitmap camera = data.getParcelableExtra("data");  
  7.             iv1.setImageBitmap(camera);  
  8.         }  
  9.         if (requestCode == 200){  
  10.             if (data!=null){  
  11.                 try {  
  12.                     Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(data.getData()));  
  13.                     iv1.setImageBitmap(bitmap);  
  14.                 } catch (FileNotFoundException e) {  
  15.                     e.printStackTrace();  
  16.                 }  
  17.             }  
  18.         }  
  19.     }  

和上面的整合到一起了。

--------------------------------------------------------------------------------------------------

Ps  Android 6.0之后 相机这些属于危险权限?  类似    不知道叫啥

需要声明一下。

[java] view plain copy
  1. //检查是否危险    true代表危险   false代表已经授权  
  2.        boolean isDanger = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)  
  3.                != PackageManager.PERMISSION_GRANTED;  
  4.        LogUtil.fussenLog().d(isDanger);  
  5.        if (isDanger){  
  6.            ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA);  
  7.            LogUtil.fussenLog().d("已经授权");  
  8.        }  

那个isDanger 就是判断是否授权过

具体关于权限的文章等我查完了之后有时间再写吧,哈哈哈哈


最新回复 (0)
返回