gpt4 book ai didi

android - 如何将 ImageView 从一个 Activity 发送到另一个 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:48:21 26 4
gpt4 key购买 nike

我在第一个 Activity 的 ListView 中有一个 ImageView ,我想将我的 ImageView 发送到 ListView 项目的 clicl 上的第二个 Activity 。

我试过下面的代码-

将可绘制图像转换为字节数组:-

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

通过 Intent 发送-

Intent intent=new Intent(PicturesList.this,PictureDetail.class);
intent.putExtra("Bitmap", byteArray);
startActivity(intent);

在第二个 Activity 中-

Bundle extras = getIntent().getExtras();
byteArray = extras.getByteArray("Bitmap");

Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
imageview.setImageBitmap(bmp);

但是问题来了-

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

这需要可绘制的图像,我有 imageview,我可以将我的 imageview 转换为 drawable 吗?或者还有什么?如何发送 imageview 而不是 drawable。以前有人这样做过。

这是我在imageview中设置图片的方式

new AsyncTask<Void,Void,Void>() {
@Override
protected Void doInBackground(Void... params) {


try {
URL newurl = new URL("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png");
bitmap= BitmapFactory.decodeStream(newurl.openConnection().getInputStream());
//bitmap = Bitmap.createScaledBitmap(bitmap, 50,50, true);
}
catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// bitmap=imageLoader.DisplayImage("http://farm3.static.flickr.com/2199/2218403922_062bc3bcf2.jpg", imageview);
//bitmap = Bitmap.createScaledBitmap(bitmap, imageview.getWidth(), imageview.getHeight(), true);
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
imageview.setImageBitmap(bitmap);
}
}.execute();

最佳答案

您不需要将位图转换为字节数组。位图是可分割的,所以你可以使用 putParcelable(String, Parcelable)将其添加到 Bundle。

编辑:

例如:

Bundle extras = new Bundle();
extras.putParcelable("Bitmap", bmp);
intent.putExtras(extras);
startActivity(intent);

然后在第二个activity中:

Bundle extras = getIntent().getExtras();
Bitmap bmp = (Bitmap) extras.getParcelable("Bitmap");

关于android - 如何将 ImageView 从一个 Activity 发送到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12858373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com