安卓相机 API v2 问题



我有 2 台 Android PDA 401 (android 6.0(。一个有一个摄像头 5MP,另一个有一个摄像头 8MP。 我的应用程序使用相机 API v2 拍照。所以我遇到了一个问题,即 5MP 手机的相机预览是 比 8MP 手机更亮。我预计 8MP 一个比 5MP 一个更亮。我有两个问题: 1/相机 Api v2 与相机 8MP 模块不兼容吗?相机 8MP 的质量很差 2/如果根本原因是相机 Api v2 不兼容,那么是否有任何解决方法? 任何意见和建议将不胜感激

<p>photo from Camera 5MP</p>
<blockquote class="imgur-embed-pub" lang="en" data-id="a/uC8Ql9j" data-context="false" ><a href="//imgur.com/a/uC8Ql9j"></a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>

<p>photo from camera 8MP</p>
<blockquote class="imgur-embed-pub" lang="en" data-id="a/d3JERUv"><a href="//imgur.com/a/d3JERUv">PDA 401 with Camera 8MP</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>

hi 设备根据相机的像素进行区分,如果您根据他进行操作,我认为问题将得到解决。以下代码包含有关相机具有多少像素的信息。给你好的编码

Camera camera=Camera.open(0);    // For Back Camera
android.hardware.Camera.Parameters params = camera.getParameters();
List sizes = params.getSupportedPictureSizes();
Camera.Size  result = null;
ArrayList<Integer> arrayListForWidth = new ArrayList<Integer>();
ArrayList<Integer> arrayListForHeight = new ArrayList<Integer>();
for (int i=0;i<sizes.size();i++){
result = (Size) sizes.get(i);
arrayListForWidth.add(result.width);
arrayListForHeight.add(result.height);
Log.debug("PictureSize", "Supported Size: " + result.width + "height : " + result.height);  
System.out.println("BACK PictureSize Supported Size: " + result.width + "height : " + result.height);  
} 
if(arrayListForWidth.size() != 0 && arrayListForHeight.size() != 0){
System.out.println("Back max W :"+Collections.max(arrayListForWidth));              // Gives Maximum Width
System.out.println("Back max H :"+Collections.max(arrayListForHeight));                 // Gives Maximum Height
System.out.println("Back Megapixel :"+( ((Collections.max(arrayListForWidth)) * (Collections.max(arrayListForHeight))) / 1024000 ) );
}
camera.release();
arrayListForWidth.clear();
arrayListForHeight.clear();
camera=Camera.open(1);        //  For Front Camera
android.hardware.Camera.Parameters params1 = camera.getParameters();
List sizes1 = params1.getSupportedPictureSizes();
Camera.Size  result1 = null;
for (int i=0;i<sizes1.size();i++){
result1 = (Size) sizes1.get(i);
arrayListForWidth.add(result1.width);
arrayListForHeight.add(result1.height);
Log.debug("PictureSize", "Supported Size: " + result1.width + "height : " + result1.height);  
System.out.println("FRONT PictureSize Supported Size: " + result1.width + "height : " + result1.height);  
} 
if(arrayListForWidth.size() != 0 && arrayListForHeight.size() != 0){
System.out.println("FRONT max W :"+Collections.max(arrayListForWidth));
System.out.println("FRONT max H :"+Collections.max(arrayListForHeight));
System.out.println("FRONT Megapixel :"+( ((Collections.max(arrayListForWidth)) * (Collections.max(arrayListForHeight))) / 1024000 ) );
}
camera.release();

最新更新