3
我正在運行一個應用程序,該應用程序將始終以手機上的肖像運行。拍攝照片時,我可以在手機上看到肖像圖像,但是,當它保存到SD卡時,圖像始終處於橫向。這是我做了什麼,我用這個清單以肖像保存照片
<uses-feature android:name="android.hardware.screen.portrait" />
當我啓動相機,我用保存照片時,下面來改變方向
camera = Camera.open(); // <8>
Camera.Parameters parameters = camera.getParameters();
camera.setDisplayOrientation(90);
parameters.setZoom(16);
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);
然後,我用這個代碼
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
FileOutputStream outStream = null;
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
Log.d(TAG, "Can Write ");
try {
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "/" + System.currentTimeMillis() + ".jpg";
Log.d(TAG, "File: " + baseDir + fileName);
outStream = new FileOutputStream(baseDir + fileName);
outStream.write(data);
outStream.close();
Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
// We can only read the media
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
Log.d(TAG, "Cant Write ");
} else {
// Something else is wrong. It may be one of many other states, but all we need
// to know is we can neither read nor write
mExternalStorageAvailable = mExternalStorageWriteable = false;
Log.d(TAG, "Other Error ");
}
}
};