0
我使用相機首次,像大多數第一次的問題接踵而至......Android相機在Android SDK怪怪
我有我的活動肖像,但我的相機是面向非常怪異。它從字面上翻轉了圖像。因此,如果我從頂部粘住我的手指,它會從預覽的左側進入...我一直在調用我的代碼很長一段時間,沒有什麼會改變它。這裏是我的預覽類:
@Override
public void surfaceChanged(SurfaceHolder holder, int f, int w, int h) {
Camera.Parameters params = camera.getParameters();
params.setPreviewSize(w,h);
params.set("orientation", "portrait");
camera.setParameters(params);
camera.startPreview();
}
@Override
public void surfaceCreated(SurfaceHolder h) {
try {
camera = Camera.open();
camera.setPreviewDisplay(h);
camera.setPreviewCallback(new PreviewCallback(){
@Override
public void onPreviewFrame(byte[] data, Camera c) {
FileOutputStream fos = null;
try {
//if(!(new File(Environment.getExternalStorageDirectory()+"/MemeMe/Temp/").exists())){
//
//}
File memeTempPath = new File(Environment.getExternalStorageDirectory()+"/MemeMe/Temp/");
File[] tempFiles = memeTempPath.listFiles();
for(int i = 0; i < tempFiles.length; i++){
tempFiles[i].delete();
}
fos = new FileOutputStream(String.format(Environment.getExternalStorageDirectory()+"/MemeMe/Temp/"+System.currentTimeMillis()));
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Preview.this.invalidate();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
現在,這裏是我的活動:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
preview = new Preview(this);
previewL = (FrameLayout)findViewById(R.id.cameraLayout);
previewL.addView(preview);
我而受到該問題的混淆。我認爲預覽應該根據方向進行更改...我也嘗試過執行params.setRotation(),並對每次旋轉做了我能想到的90,180,270,360,它根本不會改變它。
清單:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
我應該有如上所述,對不起,我正在使用API 7 – Brandon
這是一個偉大的工作。謝謝您的幫助 – Brandon