使用十六进制值设置Android图像

时间:2013-09-02 16:14:46

标签: java android imageview

是否可以使用PNG图像的十六进制值设置Android图像?

所以我的代码看起来像这样:

ImageView imageView = new ImageView();
String test = intent.getStringExtra(AndroidPoS.MESSAGE_KEY2 + ".PNG"); //MESSAGE_KEY2 contains the hex value for the image
imageView.setImageResource(test);

我知道这不会编译但是这可以让你基本了解我想要实现的目标。如果有人对如何实现这一点有任何想法,那将非常感激。

谢谢,

2 个答案:

答案 0 :(得分:1)

我认为最好的解决方案是以某种方式将十六进制字符串转换为实际的字节数组。很可能这已经在某处解决了。只要你有这个字节数组,我们就叫它imagebytes,你可以这样做:

Bitmap bmp = BitmapFactory.decodeByteArray(imagebytes, 0, imagebytes.length);

您可以在此处阅读有关BitmapFactory的信息:http://developer.android.com/reference/android/graphics/BitmapFactory.html

这里回答了类似的问题: How to convert byte array to Bitmap

答案 1 :(得分:0)

这并没有真正说明你想要做什么。 “png的十六进制值”是什么意思?单个十六进制值将占png中的一个像素

如果你的意思是如何将drawable的名称转换为其int资源id,例如,如果你有R.drawable.yourdrawable并且想要使用“yourdrawable”找到int值,你可以使用像

 context.getResources().getIdentifier(name, resType, context.getPackageName());

其中name是文件的名称(没有扩展名ex“yourdrawable”),resType是“drawable”,“color”,“integer”等

但是,您可以在意图中将R.drawable.yourdrawable作为Integer额外传递。使用标识符的速度比使用标识符要慢,并且不建议使用