据说有一些 ImageView
对象。我想将此对象的位/原始数据读取为 InputStream。怎么做?
最佳答案
首先获取imageview的背景图片作为Drawable的对象
iv.getBackground();
然后使用将 Drwable 图像转换为位图
BitmapDrawable bitDw = ((BitmapDrawable) d);
Bitmap bitmap = bitDw.getBitmap();
现在使用 ByteArrayOutputStream 将位图获取到流中并获取 bytearray[]
将 bytearray 转换为 ByteArrayInputStream
您可以使用以下代码从 imageview 获取输入流
完整的源代码
ImageView iv = (ImageView) findViewById(R.id.splashImageView);
Drawable d =iv.getBackground();
BitmapDrawable bitDw = ((BitmapDrawable) d);
Bitmap bitmap = bitDw.getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
System.out.println("........length......"+imageInByte);
ByteArrayInputStream bis = new ByteArrayInputStream(imageInByte);
谢谢
迪帕克