Android 如何将截取下载的图像发送到下一个活动
我正在活动中使用Android 如何将截取下载的图像发送到下一个活动,android,image,android-volley,Android,Image,Android Volley,我正在活动中使用volley在列表视图上下载图像和文本。 单击一行时,我将图像和文本都传递给详细信息活动。 在详细信息活动中我只想将图像传递给另一个活动 在对S/O进行研究后,我发现了一个有效的代码: BitmapDrawable bd=(BitmapDrawable)((NetworkImageView)view.findViewById(R.id.img2)) .getDrawable(); 位图bitmapzoom=bd.getBitmap(); ByteArrayOutputStrea
volley
在列表视图上下载图像和文本。
单击一行时,我将图像和文本都传递给详细信息活动。
在详细信息活动中我只想将图像
传递给另一个活动
在对S/O进行研究后,我发现了一个有效的代码:
BitmapDrawable bd=(BitmapDrawable)((NetworkImageView)view.findViewById(R.id.img2))
.getDrawable();
位图bitmapzoom=bd.getBitmap();
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
bd.getBitmap().compress(Bitmap.CompressFormat.PNG,100,baos);
字节[]imgByte=bas.toByteArray();
Intent Intent=新的Intent(getApplicationContext(),ZoomImage.class);
intent.putExtra(“图像”,imgByte);
星触觉(意向);
}
});代码>编辑:要使用位图而不是bitmapdrawable设置imageview实际图像,请执行以下操作:
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("image");
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
findViewById(R.id.img2).setImageBitmap(bmp);
在活动之间传递大型图像时要小心,它可能不会在其他活动中显示图像。最好保存到内部或外部内存,然后在其他活动中获取它。编辑:要使用位图而不是bitmapdrawable设置imageview实际图像,请执行以下操作:
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("image");
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
findViewById(R.id.img2).setImageBitmap(bmp);
在活动之间传递大型图像时要小心,它可能不会在其他活动中显示图像。最好保存到内部或外部内存,然后在其他活动中获取它。替换:
findViewById(R.id.img2).setBackgroundDrawable(background);
用于:
但是,该图像被放置为背景图像。我想将该图像放置在ImageView中。不是像上面代码那样的背景
我想我知道你的困惑是从哪里来的。我不确定您是否完全理解ImageView是什么。您的图像实际上在ImageView中,否则您将看不到它 替换:
findViewById(R.id.img2).setBackgroundDrawable(background);
用于:
但是,该图像被放置为背景图像。我想将该图像放置在ImageView中。不是像上面代码那样的背景
我想我知道你的困惑是从哪里来的。我不确定您是否完全理解ImageView是什么。您的图像实际上在ImageView中,否则您将看不到它 我不建议您在活动之间传递图像数据
建议的方法是将其保存在磁盘中,并在活动之间传递文件路径。我不建议在活动之间传递图像数据
建议的方法是将其保存在磁盘中,并在活动之间传递文件路径。获取图像的Url并通过捆绑传递,稍后在活动中,您可以使用毕加索库将其加载到视图中。下面是代码,您可以查看
private void setImageWithPicaso(String imageUrl) {
if (!(imageUrl == null)) {
Picasso.with(getActivity()).load(imageUrl).placeholder(R.drawable.placeholder_background).into(imageView, new Callback() {
@Override
public void onSuccess() {
spinner.setVisibility(View.GONE);
}
@Override
public void onError() {
spinner.setVisibility(View.GONE);
AppLog.showToastMessage(getActivity(), "Image loading failed!");
}
});
} else {
spinner.setVisibility(View.GONE);
AppLog.showToastMessage(getActivity(), "Image loading failed!");
}
}
获取图像的Url并通过bundle传递,稍后在活动中,您可以使用毕加索库将其加载到视图中。下面是您可以查看的代码
private void setImageWithPicaso(String imageUrl) {
if (!(imageUrl == null)) {
Picasso.with(getActivity()).load(imageUrl).placeholder(R.drawable.placeholder_background).into(imageView, new Callback() {
@Override
public void onSuccess() {
spinner.setVisibility(View.GONE);
}
@Override
public void onError() {
spinner.setVisibility(View.GONE);
AppLog.showToastMessage(getActivity(), "Image loading failed!");
}
});
} else {
spinner.setVisibility(View.GONE);
AppLog.showToastMessage(getActivity(), "Image loading failed!");
}
}
谢谢你的快速回复。但是我已经尝试过了,我得到了错误无法解析'setImageResource(android.graphics.drawable.BitmapDrawable)
同样的错误无法解析'setImageBitmap(android.graphics.drawable.BitmapDrawable)
设置bmp而不是背景。它需要位图,而不是位图绘制。查看更新的答案。@SteveKamau您是否尝试过ImageView imgView=(ImageView)findViewById(R.id.img2)代码>并使用APIsetImageBitmap
作为imgView.setImageBitmap
它应该将图像设置为您的ImageView
而不是其背景感谢您的快速回复..但是我已经尝试过了,我得到了错误无法解析“setImageResource(android.graphics.drawable.BitmapDrawable)“
也出现同样的错误无法解析“setImageBitmap(android.graphics.drawable.BitmapDrawable)”
设置bmp而不是背景。它需要位图,而不是位图绘制。查看更新的答案。@SteveKamau您是否尝试过ImageView imgView=(ImageView)findViewById(R.id.img2)
并使用APIsetImageBitmap
作为imgView.setImageBitmap
它应该将图像设置为您的ImageView
而不是其背景获取此错误也无法解决“setImageDrawable(android.graphics.drawable.BitmapDrawable)”
您在活动中对图像应用了任何样式吗?喜欢圆角吗?@ojonugwaochalifu,我想它会有用的+1为you@HirenPatel,是的,它应该,我使用的东西非常相似,虽然我的是RoundedBitmapDrawable
Steve good你添加了布局代码,但我很惊讶它对你不起作用,因为我使用的东西非常相似,唯一的区别是我的RoundedBitmapDrawable
而不是BitmapDrawable
也出现了这个错误无法解析“setImageDrawable”(android.graphics.drawable.BitmapDrawable)“
您是否对活动中的图像应用了任何样式?喜欢圆角吗?@ojonugwaochalifu,我想它会有用的+1为you@HirenPatel,是的,它应该,我使用的东西非常相似,虽然我的是RoundedBitmapDrawable
Steve good您添加了布局代码,但我很惊讶它对您不起作用,因为我使用的东西非常相似,唯一的区别是我的是RoundedBitmapDrawable
而不是BitmapDrawable