Android - 保存 IMG 并以新布局显示

Android - Saving an IMG and displaying in new layout

我是 android 的初学者,我正在尝试制作一个使用第一个布局拍摄照片(使用意图)并在第二个布局上显示的应用程序。

如果我不改变布局,我可以显示图片。但我希望拍摄的照片以全新的布局显示。我目前正在使用它,试图将它带到我的共享布局中,但它不起作用。

    if(requestCode == CAM_REQUEST){
        setContentView(R.layout.share);
        Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
        imgTakenPhoto.setImageBitmap(thumbnail);
    }

我遵循了在 youtube 上找到的教程。 这是我的 mainAcitivty 代码:

(进口)

public class MainActivity extends AppCompatActivity {
    ImageButton btnTakePhoto;
    ImageView imgTakenPhoto;
    private static final int CAM_REQUEST = 1313;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnTakePhoto = (ImageButton) findViewById(R.id.buttonFoto);
        imgTakenPhoto = (ImageView) findViewById(R.id.genomenFoto);

        btnTakePhoto.setOnClickListener(new btnTakePhotoClicker());
    }

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

        if(requestCode == CAM_REQUEST){
            setContentView(R.layout.share); //Change layout & display img in it
            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            imgTakenPhoto.setImageBitmap(thumbnail);
        }
    }

    class btnTakePhotoClicker implements Button.OnClickListener {

        @Override
        public void onClick(View v) {
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(cameraIntent, CAM_REQUEST);
        }
    }
    //Share layout -- back button - Go back to first layout
    public void ibBackToPhotograph(View v) {
        setContentView(R.layout.activity_main);
    }
}

我想你在布局 shareactivity_main 上都有一个 ImageViewid="@+id/genomenFoto"

因此,在使用 setContentView 方法更改布局后,您必须从新布局中检索 ImageView。 2 ImageView 在 2 布局上具有相同的 id 很少不相同 Object

像这样:

if(requestCode == CAM_REQUEST){
    setContentView(R.layout.share);
    Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
    imgTakenPhoto = (ImageView) findViewById(R.id.genomenFoto);
    imgTakenPhoto.setImageBitmap(thumbnail);
}