当前位置: 首页 > 面试题库 >

从字符串值设置Android图像

上官华池
2023-03-14
问题内容

目前,我正在Android应用程序中绘制PNG图像,如下所示:

ImageView image = new ImageView(context);
image.setImageDrawable(context.getResources().getDrawable(R.drawable.testimage))

如果我在数据库中有图像名称的列表,是否可以使用图像名称在上方设置可绘制对象?我已经有了遍历数据库的代码,我只是想根据从此处获取的值来绘制图像。

例如,数据库的一条记录:

ID:    Name:    ImageName:
-      Test     testimage

因此,当我阅读该记录时,我有一个值为“ testimage”的字符串,然后我想将可绘制的图像设置为R.drawable.testimage

我想到的一种方式是这样的:

int image = R.drawable.blank; // blank image

// testimage.png is the image name from the database
if(imageName.toString().equals("testimage.png"))
    image = R.drawable.testimage;
else if(imageName.toString().equals("another.png"))
    image = R.drawable.another;
else if(imageName.toString().equals("etc.png"))
    image = R.drawable.etc;

但是,这不是很有效!

谢谢


问题答案:

有一种方法可以执行此操作,您可以使用Resources.getIdentifier()http://developer.android.com/reference/android/content/res/Resources.html通过字符串检索资源ID。

就像是:

int resourceId = Activity.getResources().getIdentifier("testimage", "drawable", "your.package.name");


 类似资料:
  • 诸葛io的用户属性的属性类型包括字符串、数值、日期三种,您可以在「数据接入」模块儿中的「埋点管理」页面对用户属性的属性类型进行修改。 下面将重点介绍数值型属性: 一、数字类型属性的计算 在添加事件属性时,需注意事件属性类型。如事件属性类型为「数值型属性」,需要在上传数据时修改数据类型为「数值型」,并且在诸葛io后台埋点管理中修改为「数值型」。 事件的数字型属性计算功能,让你可以将事件的数字属性作为

  • 问题内容: 我是Android的初学者。在我的项目中,我从HTTP响应中获取了以下json。 我想从上面的json获取“ NeededString”。如何获得? 问题答案: 这可能对您有帮助。 Java: 科特林: getJSONObject(index)。在上面的示例中,0表示索引。

  • 问题内容: 我试图从给定的字符串中获取HTML图像标签的url。应该有一些正则表达式来获取它。但是不知道该怎么做。谁可以帮我这个事。 例如 我只需要字符串中的 _http://xyz.com/par.jpg_ 问题答案: 请参阅此问题以供参考。基本上说使用:

  • 问题内容: 我经常有这样的课程: 这使field1和field2的初始值等于null。让我所有的String类字段如下所示会更好吗? 然后,如果我与类定义保持一致,则可以避免很多空指针问题。这种方法有什么问题? 问题答案: 我不同意其他海报。可以使用空字符串。我更喜欢尽可能使用它。 在大多数情况下,空字符串和空字符串表示完全相同的事物-未知数据。用空字符串还是空字符串来表示是一个选择问题。

  • 问题内容: 如何将类型中的字符串指针的引用值设置为空字符串?考虑以下示例: 我尝试了和运算符的所有组合都无济于事: 显然其中一些很愚蠢,但我没有发现尝试的危害。我也尝试使用和: 这会导致编译错误 恐慌:反映:使用不可寻址的值reflect.Value.SetString 我假设这是因为Go中的字符串是不可变的? 问题答案: 字符串文字不可寻址。 取包含空字符串的变量的地址: 或使用新的:

  • 我有以下命名查询: 当我尝试按如下方式执行时: 然后我得到以下例外: JAVAlang.IllegalArgumentException:您试图使用查询字符串中不存在的字符串名称从Userdetails u中选择u,其中u.username=:username来设置参数值。 这是怎么造成的,我该如何解决?