从“图像”视图中获取图像,然后使用编码位图将此图像发送到其他片段

时间:2018-08-08 20:32:11

标签: java android bitmap imageview

我要从服务器获取图像并放入此图像视图,我要从该图像视图获取图像并用位图压缩,然后将此图像发送到其他片段,我不想为我的服务器添加2个请求

我的代码是:

     Bitmap bmp = BitmapFactory.decodeResource(getResources(),"my problem");
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();
            mBundle.putByteArray("ResID", byteArray);

我知道是否可以放R.darwable.ic_luncher 但我想从图像视图中获取此图像并放入“我的探测器” 你能帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用mImageView.getDrawable()Drawable获取ImageView对象:

Drawable drawable = mImageView.getDrawable();

之后,您可以从中获取一个Bitmap对象:

BitmapDrawable bitmapDrawable = ((BitmapDrawable) drawable);
Bitmap bitmap = bitmapDrawable.getBitmap();

,如果需要,甚至InputStream字节数组也可以发送它:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
// Here, the CompressFormat and quality can be adjusted for output image size
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageBytes = stream.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(imageBytes);

因此,imageBytes将包含图像的所有字节,您可以将其发送到其他地方(在您的情况下:发送到其他Fragment