仅使用图像名称获取字节数组

时间:2012-12-27 12:55:33

标签: android uiimageview bytearray

我陷入了困境。我在drawable文件夹中有一组10个图像。 在我的代码中,我只有图像名称。例如“elephant.png”,我希望图像的字节数组(可绘制)与图像名称相对应。

String imageName = getResources().getResourceEntryName(GroupIconAdapter.mThumbIds[position]);

从这里我得到图像名称,我想要字节数组。

有可能吗?

由于

3 个答案:

答案 0 :(得分:3)

尝试:

 // get Drawable id 
int drawableid =getResources().getIdentifier(GroupIconAdapter.mThumbIds[position], 
                       "drawable",this.getPackageName());

Drawable drawable_img = getResources().getDrawable(drawableid);  // get Drawable

Bitmap drawable_bitmap = ((BitmapDrawable)drawable_img).getBitmap();
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
drawable_bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outstream);

// get byte array here
byte[] bytearray_of_drawable = outstream.toByteArray();

答案 1 :(得分:1)

将此图片放入资源目录,您可以这样访问

String url = "file:///android_asset/elephant.png";

答案 2 :(得分:1)

我认为这种方式应该向右移动

首先,我应该将我的图像放在assets文件夹中,然后为相同的

制作图片
String filePath="file:///android_asset/images/test.png";
Drawable d = Drawable.createFromPath(filePath);

然后执行相应的流程以生成字节数组 -

Bitmap drawable_bitmap = ((BitmapDrawable)d).getBitmap();
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
drawable_bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outstream);

// get byte array here
byte[] bytearray_of_drawable = outstream.toByteArray();

这样我们就可以获得图像名称的可绘制和相应的字节数组。

由于