0

是否可以使用 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);

我知道这不会编译,但这让您对我想要实现的目标有一个基本的了解。如果有人对如何实现这一点有任何想法,将不胜感激。

谢谢,

4

2 回答 2

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

于 2013-09-02T16:23:24.823 回答
0

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

如果您的意思是如何将可绘制对象的名称转换为其 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 extra 传递。使用标识符比使用 id 慢并且不受欢迎

于 2013-09-02T16:22:37.940 回答