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的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式在 Android 中获取图像按钮的宽度和高度

如何获取按钮的背景颜色

如何在iphone中以编程方式实现带有背景图像的按钮

如何以编程方式获取 Android 导航栏的高度和宽度?

以编程方式调用 ibaction 方法不会改变按钮的背景?

以编程方式创建按钮并设置背景图像