在 imageview 中显示从相机拍摄的照片或从另一个 activity 的图库中选择后的照片

display the photo captured from camera or after selecting it from gallery on another activity in imageview

我在 android 中做一个照片编辑器应用程序,我有两个图像按钮(一个用于相机,另一个用于画廊)。当我用相机拍摄照片或 select 来自画廊的照片时,我希望照片显示在图像视图的另一个 activity 中。我刚刚为相机写了一些代码,但它不起作用。如果有人能帮助我,我将不胜感激。我是编程新手。

manifest.xml

<manifest ..>
<uses-feature android:name = "android.hardware.camera"  android:required="false"/>

第一个activity:

 public class MainActivity extends Activity {
 private static int IMG_RESULT = 1;

 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageButton take_photo = (ImageButton) findViewById(R.id.cameraButton);
    ImageButton get_photo  = (ImageButton) findViewById(R.id.galleryButton);
    take_photo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent,0);

        }
    protected void onActivityResult(int requestCode, int resultCode, Intent  data) {
    if(requestCode == 0 && resultCode == RESULT_OK)
    {
        Bitmap bitmap = (Bitmap)data.getExtras().get("data");
        Intent intent = new Intent(this,ShowPhotoActivity.class);
        intent.putExtra("BitmapImage",bitmap);`
        startActivity(intent);`

秒activity:

 public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_show_photo);
          ImageView showPhoto = (ImageView) findViewById(R.id.imageView);
          Bitmap bitImage = getIntent().getParcelableExtra("BitmapImage");
          showPhoto.setImageBitmap(bitImage);

代码经过测试并且工作正常。

将此添加到 清单文件

<uses-feature android:name="android.hardware.camera"></uses-feature> 

第一个Activity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == 0 && resultCode == RESULT_OK){
        Bitmap bitmap = (Bitmap)data.getExtras().get("data");
        Intent intent = new Intent(this,ShowPhotoActivity.class);
        intent.putExtra("BitmapImage",bitmap);
        startActivity(intent);
    }
}

第二个Activity

ImageView showPhoto = (ImageView) findViewById(R.id.imageView);
Bitmap bitImage = getIntent().getParcelableExtra("BitmapImage");
showPhoto.setImageBitmap(bitImage);

XML 文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
    android:id="@+id/imageView"
    android:adjustViewBounds="true"
    android:layout_width="match_parent"
    android:layout_height="300dp" />
</LinearLayout>