繁体   English   中英

将 ImageView 设置为 Android Studio 中的另一个活动

[英]Set ImageView to another activity in Android Studio

我知道这很常见,但我很困惑如何将数据 bitmap 图像传递回第一个活动,当我从第一个活动中单击按钮时,它将转到第二个活动,当用户完成填充签名者它将具有bitmap的格式,然后按保存将显示图像 bitmap 回到第一个活动,我该如何实现?,我尝试了下面的代码,但它不显示图像,需要帮助

在此处输入图像描述 在此处输入图像描述

目前我正在尝试下面的代码从second activity to first activity ,但它不起作用

Bitmap bitmap = signaturePad.getSignatureBitmap();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra("imageExample", bitmap.toString());
startActivity(intent);

第一个活动

ImageView image;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button btnNext = (Button) findViewById(R.id.btnNext);

    image = findViewById(R.id.imgUri);

    //get image from second activity
    getImage();

    btnNext.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            startActivity(intent);
        }
    });
}

    public void getImage(){
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        String resultUri = extras.getString("imageExample");
        Uri myUri = Uri.parse(resultUri);
        try {
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),myUri);
            image.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 374, 500, false));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

第二活动

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

    SignaturePad signaturePad = findViewById(R.id.signature_pad);
    Button buttonSignature = findViewById(R.id.btnSubmit);
    Button buttonClear = findViewById(R.id.btnClear);
    buttonClear.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            signaturePad.clear();
        }
    });

    buttonSignature.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Bitmap bitmap = signaturePad.getSignatureBitmap();
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            intent.putExtra("imageExample", bitmap.toString());
            startActivity(intent);
            signaturePad.clear();
        }
    });

}

您正在尝试将 bitmap 转换为不可能的字符串,而是这样做:

Intent intent = new Intent(this, ActivityTwo.class); intent.putExtra("bitmap", bitmap);

为了从您的 sencod 活动中检索它:

Intent intent = getIntent(); Bitmap bitmap = (Bitmap) intent.getParcelableExtra("bitmap");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM