1

我想获取按钮背景图像的生成 ID。该星形图像来自drawable;我想获取其生成的 ID。

我知道.getId会得到按钮的特定 ID,但是后台资源的 ID 是我想要得到的。没有这样的事情button.getBackground().getId()

<Button
    android:id="@+id/btnhgfavorite"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/star" 
    android:focusable="false"/>
4

2 回答 2

1

似乎您将可绘制对象本身存储在 Resources 文件夹中。只需从那里获取 id:

int id = R.drawable.star;

就是这样!

如果您希望该背景图像作为系统格式化它,您将无法这样做,因为重新缩放时不会保存图像,因为这是“在旅途中”完成的。

对于 Button 的任何复杂特性和功能,请尝试扩展 Button 并创建自己的,或者干脆使用不同的类。

于 2012-07-03T13:28:29.107 回答
0

我也有这个问题。但我有想法。你可以自定义一个按钮。并在其中创建一个变量。然后您可以使用get()、set()方法来操作图像的id。

class MyButton extend button{
    int id = R.id.imageId;
    public int getID(){
      returen id;
    }
    public void setID(int id){
      this.id = id;    
    }
}

但我认为这不是一个好方法。如果你有解决它的好方法。请告诉我。

于 2013-05-09T19:00:48.993 回答