【问题标题】:android get button background imageName programmaticallyandroid以编程方式获取按钮背景imageName
【发布时间】:2013-01-26 12:32:33
【问题描述】:

我在 layout.xml 中使用按钮如下

 <Button
      android:id="@+id/karaza"
      android:layout_width="160dp"
      android:layout_height="160dp"
      android:background="@drawable/button_green"
      android:text="0"
      android:textColor="#FFFFFF"
      android:textSize="45dp" />

背景图片名称为“button_green”

如何在活动代码中以字符串形式获取它?

提前致谢

【问题讨论】:

  • 你能说出你在哪里使用它以及为什么使用它吗??
  • 我想使用背景名称来检查背景名称是否为“绿色”以在按下动作中使用其他绿色背景图像。等等其他颜色。

标签: android android-layout button android-relativelayout


【解决方案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);
猜你喜欢
  • 2011-03-07
  • 1970-01-01
  • 2020-05-15
  • 1970-01-01
  • 2022-11-02
  • 2013-09-12
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多