我想将使用intent对象在PutExtra()中设置为Button的背景图像传递给另一个类。
有谁知道怎么做?
由于 davidbrown
答案 0 :(得分:8)
发件人活动:
Bitmap bitmap = BitmapFactory.decodeResource
(getResources(), R.drawable.sticky_notes); // your bitmap
ByteArrayOutputStream bs = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bs);
intent.putExtra("byteArray", bs.toByteArray());
接收者活动:
if(getIntent().hasExtra("byteArray")) {
ImageView imv= new ImageView(this);
Bitmap bitmap = BitmapFactory.decodeByteArray(
getIntent().getByteArrayExtra("byteArray"), 0, getIntent().getByteArrayExtra("byteArray").length);
imv.setImageBitmap(bitmap);
}
答案 1 :(得分:2)
意图只能保持40千字节。如果你可以将你的图像压缩到小于40千字节 - 你可以将它放入附加内容
答案 2 :(得分:1)
intent.putExtra("imageData", bitmap)
更好的方法是创建一个链接,而不是直接传递位图。
intent.putExtra("image_url",R.drawable.image);
答案 3 :(得分:1)
试试这个......
首先在位图中获取图像。
Bitmap tileImage = BitmapFactory.decodeResource(getResources(), R.drawable.floore);
将其转换为字节数组。
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Bundle b = new Bundle();
b.putByteArray("camara",byteArray);
Intent intent3 = new Intent(this,Second.class);
intent3.putExtras(b);
startActivity(intent3);
答案 4 :(得分:0)
如果您确定它不会从内存中删除(换句话说 - 不存储类似的位图),您可以传递Bitmap
(因为它正在实现Parcelable
)。< / p>
Bitmap
本身只是本机资源的一个小型Java包装器,所以它不会占用太多空间。
答案 5 :(得分:0)
传递非常大的文件(例如照片或图库文件)时要小心。即使压缩它,大小也可能超过putExtra的可接受限制。我建议从图库发送图像链接或文件路径。在我的应用程序中,我总是尽可能地最大压缩文件,但总是有一个文件崩溃。
Intent intent = new Intent(getActivity(), PhotoViewActivity.class);
intent.putExtra("url", url);
//OR file path
intent.putExtra("path", path);
startActivityForResult(intent,PHOTO_VIEW_REQUEST);
在这种情况下,在PhotoViewActivity上
String url = getIntent().getStringExtra("url");
String path = getIntent().getStringExtra("path");
if(url != null && !url.isEmpty()){
//Get using Picasso or other framework
}else if(path != null && !path.isEmpty()){
//In my case I transform in Bitmap
//see this link for more detail : https://stackoverflow.com/questions/16804404/create-a-bitmap-drawable-from-file-path
}else{
//Throw exception and close activity
}
如何在位图中转换路径: Create a Bitmap/Drawable from file path