本文主要实现如何打开相机把照的图片展示,还有就是读取本地相册,把选取中的图片返回。
第一步: 权限声明,一个是相机权限一个是读取权限
<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 就是判断是否授权过
具体关于权限的文章等我查完了之后有时间再写吧,哈哈哈哈