Android抓拍照片返回低分辨率

Android抓拍照片返回低分辨率,android,android-intent,android-camera,Android,Android Intent,Android Camera,我只是在Stackoverflow中研究了类似的问题,但还没有找到解决方案 每次我尝试用android应用程序拍摄照片时,它都会返回分辨率为240x360像素的位图照片,尽管相机的分辨率约为800万像素 那么,我的编程代码中的错误在哪里:(看这个屏幕截图) private static final int TAKE_PHOTO_code=1; 私有静态void takePhoto(){ 最终意图=新意图(MediaStore.ACTION\u IMAGE\u CAPTURE); intent.p

我只是在Stackoverflow中研究了类似的问题,但还没有找到解决方案

每次我尝试用android应用程序拍摄照片时,它都会返回分辨率为240x360像素的位图照片,尽管相机的分辨率约为800万像素

那么,我的编程代码中的错误在哪里:(看这个屏幕截图)

private static final int TAKE_PHOTO_code=1;
私有静态void takePhoto(){
最终意图=新意图(MediaStore.ACTION\u IMAGE\u CAPTURE);
intent.putExtra(MediaStore.EXTRA_输出,Uri.fromFile(getTempFile(thisOne.getBaseContext()));
这一条。startActivityForResult(意图、拍照代码);
}
私有静态文件getTempFile(上下文){
//它将返回/sdcard/image.tmp
最终文件路径=新文件(Environment.getExternalStorageDirectory(),context.getPackageName());
如果(!path.exists()){
path.mkdir();
}
返回新文件(路径“image.tmp”);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
if(resultCode==RESULT\u OK){
开关(请求代码){
案例拍摄\照片\代码:
最终文件File=getTempFile(此文件);
试一试{
位图captureBmp=MediaStore.Images.Media.getBitmap(getContentResolver(),Uri.fromFile(file));
int a=captureBmp.getHeight();//结果240
int b=captureBmp.getWidth();//结果360
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
打破
}
}
}

感谢您的帮助

使用此功能。获取支持的大小的列表。通过循环找到最大的分辨率

Parameters params = camera.getParameters();
 List<Size> sizes = params.getSupportedPictureSizes();
                Camera.Size size = sizes.get(0);
                for(int i=0;i<sizes.size();i++)
                {
                    if(sizes.get(i).width > size.width)
                        size = sizes.get(i);
                }
Parameters params=camera.getParameters();
列表大小=params.getSupportedPictureSizes();
Camera.Size=Size.get(0);
用于(int i=0;i size.width)
大小=大小。获取(i);
}

您是否尝试过使用
BitmapFactory
加载图像?您是否尝试从应用程序内部以外的其他位置查看图像文件?请参阅:
MediaStore.Images.Media.getBitmap()
仅提供缩略图;应从文件中加载全尺寸图像,该文件的路径可以从
MediaStore.Images.Media.DATA
列中找到。