Android,参考R.drawable中的东西。使用变量?

发布于 2024-12-12 11:17:51 字数 94 浏览 1 评论 0原文

假设我想根据字符串的值动态加载 R.drawable.* 中的图像文件

有没有办法做到这一点?看来我需要静态引用 R 中的任何内容。

say I want to dynamically load an image file in R.drawable.* based on the value of a string

Is there a way to do this? It seems like I need to statically refer to anything in R.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

攒眉千度 2024-12-19 11:17:51

您是否在 XML 文件中声明了图像的 id?如果这样做,您可以使用以下方法:

假设您的 res/drawable 文件夹中有 picture.png。

在您的 Activity 中,您可以在 main.xml 文件中设置图像资源

<ImageView android:id="@+id/imageId" android:src="@drawable/picture"></ImageView>

。在 FirstActivity 中,

//to retrieve image using id set in xml.
String imageString = "imageId"
int resID = getResources().getIdentifier(imageString , "id", "package.name");
ImageView image = (ImageView) findViewById(resID);

imageString 是动态名称。之后就可以获得动态资源的标识符。

另一种方法是,您可以这样做:

//to retrieve image in res/drawable and set image in ImageView
String imageName = "picture"
int resID = getResources().getIdentifier(imageName, "drawable", "package.name");
ImageView image;
image.setImageResource(resID );

您将能够引用您的图像资源并将 ImageView 设置为它。

Have you declared the id for the image in XML file? If you did, you can use the following method:

Let's say you have picture.png in your res/drawable folder.

In your activity, you can set your image resource in the main.xml file

<ImageView android:id="@+id/imageId" android:src="@drawable/picture"></ImageView>

In FirstActivity

//to retrieve image using id set in xml.
String imageString = "imageId"
int resID = getResources().getIdentifier(imageString , "id", "package.name");
ImageView image = (ImageView) findViewById(resID);

imageString is the dynamic name. After which you can get the identifier of the dynamic resource.

Another method, you can do this:

//to retrieve image in res/drawable and set image in ImageView
String imageName = "picture"
int resID = getResources().getIdentifier(imageName, "drawable", "package.name");
ImageView image;
image.setImageResource(resID );

You will be able to reference your image resource and set your ImageView to it.

趁微风不噪 2024-12-19 11:17:51
int drawableId = getResources().getIdentifier(drawablename, "drawable", getPackageName());
imageview.setImageResource(drawableId);

试试这个。这应该有效。

int drawableId = getResources().getIdentifier(drawablename, "drawable", getPackageName());
imageview.setImageResource(drawableId);

Try this. This should work.

懒猫 2024-12-19 11:17:51
Class res = R.string.class;
Field field = res.getField("x" + pos);
headerId = field.getInt(null);
header.setText(headerId);

这也适用于可绘制对象,只需编辑字符串即可。标题部分不是必需的,它只是从我之前写的东西中提取的一个示例。

Class res = R.string.class;
Field field = res.getField("x" + pos);
headerId = field.getInt(null);
header.setText(headerId);

this works with drawables as well, just edit the string. the header part is not required, it's just an example pulled from something I wrote a while ago.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文