我正在開發自定義相機應用程序,並遇到方向問題。設置正確的方向以預覽相機和最終結果圖像
當手機處於縱向的預覽畫面,並導致圖像顯示在景觀
當手機在左側橫向預覽畫面和結果正確的圖像顯示
當手機處於正確的橫向位置時,預覽屏幕和結果圖像顯示爲橫向模式,但是垂直翻轉
我讀過有關改變與setDisplayorientation方向,但我沒有設法解決它。
有人可以幫助我嗎?
感謝您的幫助
這是相機的活動啓動預覽代碼
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// TODO Auto-generated method stub
System.out.println("!!!!!!!CAMBIO!!!!!!!!");
initPreview(width, height);
startPreview();
}
private void initPreview(int width, int height) {
if (myCamera!=null && mySurfaceHolder.getSurface()!=null) {
try {
myCamera.setPreviewDisplay(mySurfaceHolder);
}
catch (Throwable t) {
Log.e("PreviewDemo-surfaceCallback",
"Exception in setPreviewDisplay()", t);
Toast
.makeText(CameraHandler.this, t.getMessage(), Toast.LENGTH_LONG)
.show();
}
if (!cameraConfigured) {
Camera.Parameters parameters=myCamera.getParameters();
Camera.Size size=getBestPreviewSize(width, height,
parameters);
if (size!=null) {
parameters.setPreviewSize(size.width, size.height);
myCamera.setParameters(parameters);
cameraConfigured=true;
}
}
}
}
private void startPreview() {
if (cameraConfigured && myCamera!=null) {
myCamera.startPreview();
inPreview=true;
}
}
private Camera.Size getBestPreviewSize(int width, int height, Camera.Parameters parameters) {
Camera.Size result=null;
for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
System.out.println("Soportados " + size.width + "x" + size.height);
if (size.width<=width && size.height<=height) {
if (result==null) {
result=size;
}
else {
int resultArea=result.width*result.height;
int newArea=size.width*size.height;
if (newArea>resultArea) {
result=size;
}
}
}
}
return(result);
}
對不起,語法錯誤。 – Hanzo
同樣的問題與我的方向我張貼我的解決方案在我的文章請檢查它會幫助你設置方向http://stackoverflow.com/questions/23657694/impementation-of-tuch-to-focus-on-camera-in -android – Simpalm