在我的应用程序中,我通过内置相机 Activity 拍摄图像并将其存储在 SD 卡中。我正在使用 intent.putextras 获取高分辨率图像。
第一个设备-代码成功运行,我得到了分辨率为 640X480 的图像。
第二个设备-当内置相机 Activity 要求保存捕获的图像时,它会强制关闭。但是,当我将设备的摄像头分辨率明确更改为 640X480 并重新运行应用程序时,它工作得非常好。
问题:-
- 克服这个问题的方法 ??
- 这可能是与 Android 版本相关的问题吗?两个设备的安卓版本不同。
- thera 是一种将分辨率参数 (640,480) 传递给内置相机 Activity 的方法吗?还是需要自拍 Activity ??
代码如下
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId()!=1000){
imageFile = "bmp"+v.getId()+".png";
File f = new File (folder,imageFile);
imageUri = Uri.fromFile(f);
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(i,CAMERA_PIC_REQUEST);
}
if(v.getId()==1000){
Intent openFinalShow = new Intent("com.integrated.mpr.FINALSHOW");
startActivity(openFinalShow);
finish();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
return;
}
}
最佳答案
我认为不可能将分辨率参数有意传递给库存相机。这里存在关于具有不同摄像头的不同手机的问题,以及用户可能拥有不同的默认摄像头应用程序而无法识别所述 Intent 附加功能的可能性。
您的问题的解决方案是编写自定义相机 Activity ,使用您自己的预览和相机设置。然后您可以正确设置录制的图像/视频的分辨率。以及预览窗口的分辨率和/或大小等。
camera developer guide和其他对自定义 android 相机示例的搜索将很有用
关于android - 设置相机拍摄图像的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12093670/