如何将位图图像转换为另一个活动?

问题描述 投票:0回答:1

为什么我的代码不起作用?我想将图像从一个活动转移到另一个活动。请帮忙!注意:我创建了一个相机功能,这就是我获取图像的地方。

这是MainActivity.java

public class MainActivity extends AppCompatActivity {

public static final int CAMERA_REQUEST = 9999;

ImageView imageView1;
Button camera,send;

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

    imageView1 = findViewById(R.id.imageView1);
    camera = findViewById(R.id.camera);
    send = findViewById(R.id.send);

    camera.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent d1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(d1, CAMERA_REQUEST);
        }
    });

    send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            imageView1.buildDrawingCache();
            Bitmap bitmap = imageView1.getDrawingCache();

            Intent intent = new Intent(MainActivity.this, ResultActivity.class);  
            intent.putExtra("bp", bitmap);

        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Bitmap bitmap = (Bitmap) data.getExtras().get("data");
    imageView1.setImageBitmap(bitmap);
}
}

这是ResultActivity.java

public class ResultActivity extends AppCompatActivity {

ImageView imageView2;

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

    imageView2 = findViewById(R.id.imageView2);

    Intent intent = new Intent();
    Bitmap bitmap = intent.getParcelableExtra("bp");
    imageView2.setImageBitmap(bitmap);
    }
}  

如果我做错了什么。请告诉我。 Thankssss

java android parsing bitmap uri
1个回答
0
投票

您已经在“OnActivityResult”中收到的意图中将位图作为Uri接收。您所要做的就是使用此意图转移到第二个活动。然后从那里你可以将其转换为位图:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Intent intent = new Intent(MainActivity.this, ResultActivity.class);  
    intent.putExtra("Some key",data.getData().toString());
    Bitmap bitmap = (Bitmap) data.getExtras().get("data");
    imageView1.setImageBitmap(bitmap);
}
}

在ResultActivity上:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);
    Uri uri = Uri.parse(getIntent.getExtra.getString("Some key"));
    imageView2 = findViewById(R.id.imageView2);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);

    imageView2.setImageBitmap(bitmap);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.