我怎样才能用自定义相机拍照并显示在另一个 activity 上?

How can i take a picture with custom camera and display it on another activity?

请帮助我如何从自定义相机拍摄照片并在另一个相机上显示它activity,请给我更详细的答案,我应该放什么代码,放在哪里,请告诉我是哪种我应该创建变量、int、字符串、布尔值,
这是我的代码:

主要Activity:

@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();
        }
    }
}

您可以使用接口将 YOUR_FILE_PATH 从 CameraPreview class 传递到 MainActivity class。 然后在 MainActivity.java

Intent i = new Intent(this, EditPicture.class);
i.putExtra("FILE_PATH", YOUR_FILE_PATH);
startActivity(i);

在 EditPicture 中 activity

@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

如果您需要我详细说明,请告诉我。