调用相机的时候 我们首先要写权限
<uses-permission android:name="android.permission.CAMERA"/>
控件的点击选择事件
//img是一张图片控件
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//权限 是否调用摄像头 这个权限在模拟器上运行需要改动版本
if(Build.VERSION.SDK_INT>=23){
String[] mPermissionList = new String[]{Manifest.permission.CAMERA};
ActivityCompat.requestPermissions(getActivity(),mPermissionList,123);
}
//判断权限是否被允许使用 允许的话 执行下面一系列操作,不允许的话 直接返回 不做操作
。。。。。。。。。。在这里还没有写这个判断
//弹框选择相机或者相册
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("请选择");
builder.setPositiveButton("相机", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent();
// 指定开启系统相机的Action
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(intent, 1);
}
});
builder.setNegativeButton("相册", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// 第三步:创建 意图
// Intent.ACTION_PICK 这个对应的就是图库
Intent intent = new Intent(Intent.ACTION_PICK);
// 第四步:设置显式MIME数据类型
intent.setType("image/*");
// 第五步:跳转回
startActivityForResult(intent, 2);
}
});
builder.show();
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//相册
if (requestCode == 2) {
Uri uri = data.getData();
img.setImageURI(uri);
}
//相机
if(requestCode == 1){
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap)bundle.get("data");
img.setImageBitmap(bitmap);
}
}