我是Android開發中的新手,所以如果我的問題微不足道,我很抱歉。在我的應用程序的一部分,我需要我的後置攝像頭的實時預覽,所以我創建了一個自定義類,它擴展了SurfaceView並實現了SurfaceHolder.Callback(我基本上遵循了android文檔中的說明)。Nexus 5x反向風景傳感器修復安卓相機預覽應用程序
不幸的是,我在Nexus 5x中測試我的應用程序,我剛剛意識到它已經以相反的方式安裝了相機傳感器。出於這個原因,在我的Nexus 5x上運行時,我的應用程序的相機預覽看起來顛倒了,這是我不想要的。
看來,新的android.hardware.camera2 API能夠自動處理這個問題。最終,我需要使用這個新API更新我的所有代碼,但現在我需要的是使用舊相機API時的快速修復。
所以我在那裏讀書,我發現了一段代碼,我需要在SurfaceChanged方法中介紹以解決此問題。這是它:
Display display = ((WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
if(display.getRotation() == Surface.ROTATION_0)
{
parameters.setPreviewSize(capHeight, capWidth);
camera.setDisplayOrientation(90);
}
if(display.getRotation() == Surface.ROTATION_90)
{
parameters.setPreviewSize(capWidth, capHeight);
}
if(display.getRotation() == Surface.ROTATION_180)
{
parameters.setPreviewSize(capHeight, capWidth);
}
if(display.getRotation() == Surface.ROTATION_270)
{
parameters.setPreviewSize(capWidth, capHeight);
camera.setDisplayOrientation(180);
}
camera.setParameters(parameters);*/
camera.startPreview();
問題是,我沒有看到有什麼改變。
有什麼想法?
Nexus 6P怎麼樣? – innich