android - 在单独的 xml 中指定可绘制资源 ID

标签 android drawable imagebutton

我有一个指定一组图像按钮名称的 xml 文件。另外,我想将图像资源 ID 指定为 xml 节点的属性,如下所示:

<button name="close" resLocation="R.drawable.close" />

我正在解析代码中的 xml,我想使用 resLocation 属性为动态创建的按钮设置图像背景。由于 resLocation 是一个字符串,我不能直接转换为 Drawable 对象。有什么办法可以解决吗?

最佳答案

您可以使用获取 getResources().getIdentifier:

String myResourceId = "close"; // Parsed from XML in your case
getResources().getIdentifier(myResourceId, "drawable", "com.my.package.name");

这需要您的 XML 稍有不同:

<button name="close" resLocation="close" />

如果您需要在 XML 中保留 R.type.id 格式,那么您只需要解析出类型和 ID:

String myResourceId = "R.drawable.close";
String[] resourceParts = myResourceId.split("\\.");
getResources().getIdentifier(resourceParts[2], resourceParts[1], "com.my.package.name");

关于android - 在单独的 xml 中指定可绘制资源 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864691/

相关文章:

android - 如何创建按下 ImageButton 的历史记录

android - 为什么我已经为每个可绘制文件夹调整了位图的大小,但 Android 可绘制对象仍然存在问题?

java - Android Studio致命异常: java. lang.OutOfMemoryError:无法分配内存

android - 在 FrameLayout 中添加 Google Maps Android API v2 MapFragment 和 View

android - 使用 Drawable 初始化 SurfaceView

java - 更新 View 的规则是什么?

java - 有没有办法从android :drawable programatically?设置背景

Android - 以编程方式剪切可绘制图像

javascript - 是否有适用于 iOS 和 Android 的原生控件的 javascript 框架?

android - 在Android上同时阅读epub文件