2
我正在使用带有android的增强现实应用程序,并且我实现了相机代码。在Android OS 2.0及更高版本的Camera Preview中出现问题
我目前的基础SDK版本是1.6。有了这个我的应用程序工作正常,操作系统版本高达1.6,并获得与OS 2.0和问题的设备..
任何解决方案?
谢谢。
我正在使用带有android的增强现实应用程序,并且我实现了相机代码。在Android OS 2.0及更高版本的Camera Preview中出现问题
我目前的基础SDK版本是1.6。有了这个我的应用程序工作正常,操作系统版本高达1.6,并获得与OS 2.0和问题的设备..
任何解决方案?
谢谢。
我用Google搜索,并得到了以下的解决方案。与替换您surfacechanged方法如下一个
private static Method getSupportedPreviewSizes = null;
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
try {
Camera.Parameters parameters = camera.getParameters();
Integer version = Integer.parseInt(Build.VERSION.SDK);
if (version >= Build.VERSION_CODES.ECLAIR) {
try {
getSupportedPreviewSizes = Parameters.class.getMethod(
"getSupportedPreviewSizes", (Class[]) null);
/* success, this is a newer device */
} catch (NoSuchMethodException nsme) {
/* failure, must be older device */
}
Object supportedFormats = getSupportedPreviewSizes.invoke(
parameters, (Object[]) null);
List<Size> sizes;
if (supportedFormats instanceof List<?>) {
sizes = (List<Camera.Size>) supportedFormats;// params.getSupportedPreviewSizes();
Size optimalSize = getOptimalPreviewSize(sizes, w, h);
parameters.setPreviewSize(optimalSize.width,
optimalSize.height);
}
} else {
parameters.setPreviewSize(100, 100);
}
parameters.setPictureSize(320, 480);
camera.setParameters(parameters);
camera.startPreview();
} catch (Exception e) {
e.printStackTrace();
}
}