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

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

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

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

                              一个ImageView 展示返回的图片


第三步:实现

手机照相代码如下:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(intent, 100);
通过Intent 跳转到手机的摄像头

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

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 100) {
            //获取照片数据
            Bitmap camera = data.getParcelableExtra("data");
            iv1.setImageBitmap(camera);
        }
}

懒得截图了,,,很简单

下面就是打开手机相册

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("iamge/*");
        startActivityForResult(intent , 200);

然后同样在回调里面:

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 100) {
            //获取照片数据
            Bitmap camera = data.getParcelableExtra("data");
            iv1.setImageBitmap(camera);
        }
        if (requestCode == 200){
            if (data!=null){
                try {
                    Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(data.getData()));
                    iv1.setImageBitmap(bitmap);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            }
        }
    }

和上面的整合到一起了。

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

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

需要声明一下。

 //检查是否危险    true代表危险   false代表已经授权
        boolean isDanger = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
                != PackageManager.PERMISSION_GRANTED;
        LogUtil.fussenLog().d(isDanger);
        if (isDanger){
            ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA);
            LogUtil.fussenLog().d("已经授权");
        }

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

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

发布了124 篇原创文章 · 获赞 141 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_36838630/article/details/79695227
今日推荐