java - 从相机捕获图像并将其设置为图像视图
问题描述
我正在创建一个从相机捕获图像并将其设置为 imageview 的应用程序。
这是代码:
button.setOnClickListener(v -> {
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED){
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
}else {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA}, 2);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1 && resultCode==RESULT_OK && data!=null){
Toast.makeText(this, "yes", Toast.LENGTH_SHORT).show();
try {
Bitmap bitmap=MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData())
imageView.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
图像视图为空。
但是当我使用这个时:
Bitmap bitmap=(Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(bitmap);
代替:
Bitmap bitmap=MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData())
imageView.setImageBitmap(bitmap);
我正在获取图像。
这两种方法有什么区别为什么我在第二种方法中得到正确的输出
解决方案
推荐阅读
- javascript - 禁用包含字体的css文件并在使用jquery完成窗口加载时加载它们
- ios - 在低于 13 的 iOS 版本上,UIView 的派生不能转换为 UIView
- soap - 在 Visual Studio 2019 中导入 WSDL (soap) 导入架构失败
- javascript - 使用 React 和 Next.js 将标签添加到具有正确位置的图像坐标
- python-3.x - 从源代码构建时Python3失败
- excel - 将公式应用于 Excel 中的条件格式
- database - 从数据库中获取 Primavera p6 资源分配?
- ios - Swift:是否可以调整音量并保存音量调整后的音频文件
- c# - C# 存储来自 Android 流的 3gpp 文件
- python - 将 .py 文件转换为 .exe 文件后,cv2.imwrite 无法工作。有人可以帮我解决这个问题吗?