請幫助我如何從自定義相機拍攝照片並將其顯示在其他活動上,請給我更詳細的答案,我應該放什麼代碼,以及在哪裏,請告訴我,什麼樣的變量,int,字符串,布爾我應該創建,
這裏是我的代碼:如何使用自定義相機拍攝照片並將其顯示在其他活動上?
主要活動:
請幫助我如何從自定義相機拍攝照片並將其顯示在其他活動上,請給我更詳細的答案,我應該放什麼代碼,以及在哪裏,請告訴我,什麼樣的變量,int,字符串,布爾我應該創建,
這裏是我的代碼:如何使用自定義相機拍攝照片並將其顯示在其他活動上?
主要活動:
@Override
public void onPictureTaken(byte[] data, Camera camera) {
final Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
// Store bitmap to local storage
FileOutputStream out = null;
try {
// Prepare file path to store bitmap
// This will create Pictures/MY_APP_NAME_DIR/
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "MY_APP_NAME_DIR");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d(Constants.LOG_TAG, "failed to create directory");
return null;
}
}
// Bitmap will be stored at /Pictures/MY_APP_NAME_DIR/YOUR_FILE_NAME.jpg
String filePath = mediaStorageDir.getPath() + File.separator + "YOUR_FILE_NAME.jpg";
out = new FileOutputStream(filePath);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
您可以使用接口從CameraPreview類通過YOUR_FILE_PATH到MainActivity類別。 然後在MainActivity.java
Intent i = new Intent(this, EditPicture.class);
i.putExtra("FILE_PATH", YOUR_FILE_PATH);
startActivity(i);
在EditPicture活動
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().hasExtra("FILE_PATH")) {
String filePath = getIntent().getStringExtra("FILE_PATH");
// Read bitmap from local file
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);
yourImageView.setImageBitmap(bitmap);
}
}
最後,爲了讓您的應用程序寫入外部存儲添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
到AndroidManifest.xml。
這是如何將位圖寫入外部存儲器的示例。如果要存儲到內部存儲器,如緩存或其他選項,請參閱http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
如果您需要我詳細說明,請告訴我。
它似乎可以達到我,我只有2個小問題,「FILE PATH」和「YOUR_FILE_PATH」,因爲我是一個C++ C#開發人員,學習Android 4個月至今,我從來沒有與照片做,現在這使得我有很多問題,我該如何設置它們(FILE_PATH)和YOUR_FILE_PATH? –
更新了答案。 「FILE_PATH」是捆綁的字符串標籤。你可以按照你的意願命名它。你只需要爲putExtra和getStringExtra – Emma
表示謝謝,但是YOUR_FILE_PATH?很抱歉要問這麼多,我知道這很惱人,但我必須在本週完成這個應用程序 –
還沒有通過,但你可以將圖像數據存儲到本地文件存儲,並將Bundle路徑傳遞給活動?在第二項活動中,您可以從本地文件存儲中讀取。 – Emma
我試過用捆綁包,但我不能保存到本地文件存儲,idk爲什麼它不顯示,它在測試時關閉我的應用 –
您試圖在發送之前存儲?你基本上只需要通過bundle傳遞字符串路徑到本地文件。您也可能需要考慮在存儲之前進行壓縮。 – Emma