android - 三星设备上的 ACTION_IMAGE_CAPTURE 模糊

标签 android android-camera samsung-mobile

我正在使用此代码打开相机 Intent :

Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePicture.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
startActivityForResult(takePicture, 0);

它工作正常,但只适用于装有 Android 8 的三星设备 (8\9) 拍照后预览全是模糊的, 有人有这种奇怪的行为吗?

(我也试过没有 putExtra 行)

截图如下:

before

after[![][1] ] 3

最佳答案

您必须在相机 Intent 中额外提供照片路径 Uri,如下所示:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), mUserID + ".jpg");
Uri photoPath = getUriForFile(mContext, BuildConfig.APPLICATION_ID, file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoPath);   //--> here 
startActivityForResult(Intent.createChooser(intent, "Complete action using"), REQUEST_CODE_CAMERA);

然后,你就可以在onActivityResult中获取那个Uri本身的抓图了

关于android - 三星设备上的 ACTION_IMAGE_CAPTURE 模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55117335/

相关文章:

android - 有什么方法可以获得CMOS Status?

java - 在android中从SD卡读取文本文件时出错

Android Studio 项目已经注册

android - 如何让安卓进入休眠模式

android - 相机预览处于纵向模式,但拍摄的图像已旋转

android - 相机显示拉伸(stretch)图像

java - 如何在android中创建自定义开关控件

java - 相同的键 - 使用 HashMap 的不同值

Android - 以编程方式检查开发人员选项?

java - 应用程序无法在 Samsung Galaxy Tab SII 上启动