Android:如何在应用程序中设置按钮的按钮图像

时间:2014-01-07 17:50:16

标签: android

目前我有这个:front_card_display.setBackgroundResource(R.drawable.large_card_0);

但是,我希望large_card_“0”具有灵活性,这意味着我希望它基于变量或在需要时进行更改。它可能是1,2,3 ..等。这样做的最佳方法是什么。我也试过创建一个r.string但它似乎不起作用。提前谢谢。

问候,

瑞安

2 个答案:

答案 0 :(得分:1)

我相信你想要getIdentifier()。 Link

这是我所知道的唯一方式,它运作良好。

编辑:示例

for (int i = 1; i <= 118; i++) {
        int id = getResources().getIdentifier("element" + i, "id", this.getPackageName());
        Button preview = (Button) findViewById(id);
        //...

    }

这是一些代码。在我的例子中,我有118个按钮,名为element1,element2,element3,依此类推。您可以看到我如何使用“i”作为变量来遍历所有

答案 1 :(得分:1)

您需要设置一个设置drawableId的switch语句。

    private int getDrawableId(int yourVariableToSwitchOn) {

        int drawableId;
        switch(yourVariableToSwitchOn) {
            case CASE_0:
               drawableId = R.drawable.large_card_0;
               break;
            case CASE_1:
               drawableId = R.drawable.large_card_1;
               break;
            case CASE_2:
               drawableId = R.drawable.large_card_2;
               break;
            case CASE_3:
               drawableId = R.drawable.large_card_3;
               break;
         }
         return drawableId;
    }

然后只需设置背景front_card_display.setBackgroundResource(getDrawableId(someVariableToControlResource));

即可