android以编程方式获取按钮背景imageName
Posted
技术标签:
【中文标题】android以编程方式获取按钮背景imageName【英文标题】:android get button background imageName programmatically 【发布时间】:2013-01-26 12:32:33 【问题描述】:我在 layout.xml 中使用按钮如下
<Button
android:id="@+id/karaza"
android:layout_
android:layout_
android:background="@drawable/button_green"
android:text="0"
android:textColor="#FFFFFF"
android:textSize="45dp" />
背景图片名称为“button_green”
如何在活动代码中以字符串形式获取它?
提前致谢
【问题讨论】:
你能说出你在哪里使用它以及为什么使用它吗?? 我想使用背景名称来检查背景名称是否为“绿色”以在按下动作中使用其他绿色背景图像。等等其他颜色。 ***.com/a/14054414/726863 【参考方案1】:试试这个:
我认为没有任何直接的方法可以获取可绘制图像的名称,除非您将图像名称与图像一起存储。
在 XML 中,您可以执行以下操作将图像名称设置为 imageview 的附加数据
android:tag="btful.png"
以编程方式设置图像名称
ImageView img = (ImageView) findViewByID(R.id.img)// my image
img.settag("btful.png"); // to set an image name
你可以使用getTag()获取图片名称
String imageName = (String)img.getTag();
【讨论】:
我的背景不是“颜色”,它是可绘制文件夹中的 png 图像,我想将其名称检索为字符串 好的,感谢您的帮助,似乎无法直接获得 imagr,所以我会考虑替代方案。【参考方案2】:试试这个,
Btn.setBackgroundResource(R.drawable.button_green);
【讨论】:
这是给btn设置背景,这不是我的意思。我想在代码中检索背景名称【参考方案3】:只需 Findviewbyid 的 java 文件中的按钮然后使用:
btn.getBackground();
它会起作用的!
并将其分配给可绘制对象...
【讨论】:
我试过这个并且位打印这个 --> android.graphics.drawable.BitmapDrawable@4053a870 这不是图像名称,它是“button_green” 它是那个按钮的id,你可以用它来代替名字 试试这个......它肯定会工作:String btnName = getResources().getString(R.id.btnid);以上是关于android以编程方式获取按钮背景imageName的主要内容,如果未能解决你的问题,请参考以下文章