如何将拍摄的照片传递给其他活动?

时间:2015-06-21 22:48:32

标签: android android-activity camera photo

我有一个自定义相机应用程序,我想将拍摄的照片传递到另一个活动,我可以在其上添加其他图标(表情符号)。

如何将拍摄的照片传递给其他活动?

1 个答案:

答案 0 :(得分:0)

您可以通过意图传递照片的URI。假设您使用startActivityForResult()拨打相机。在您的相机活动中:

Intent data = new Intent();
data.putExtra(MediaStore.EXTRA_OUTPUT, imageFilename);
setResult(Activity.RESULT_OK, data);
finish();

然后在你的表情符号活动中:

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (data != null && data.hasExtra(MediaStore.EXTRA_OUTPUT)) {
        File imageFile = new File(data.getStringExtra(MediaStore.EXTRA_OUTPUT));

        // Bitmap here, do whatever you need
        Bitmap bitmap = readBitmapFromFile(imageFile.getName());
    }
}

public static Bitmap readBitmapFromFile(@NotNull String filename) {
    File file = new File(filename);

    BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    bmOptions.inJustDecodeBounds = false;
    bmOptions.inPreferredConfig = Bitmap.Config.RGB_565;
    bmOptions.inSampleSize = 1;
    bmOptions.inPurgeable = true;

    Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), bmOptions);

    return bitmap;
}