如何动态地将drawable(.xml)添加到按钮(动态生成)

时间:2017-01-20 09:42:01

标签: android android-layout button

我有一个动态创建Button

数组的方法
 for(int i = 0; i < 10; i++){
     Button button = new Button(activity);
     LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(200, 100);
     button.setLayoutParams(lparams);
     button.setTag(0);
     buttonArray[i] = button;
     layout.addView(button);
 }

我创建了一个drawable d.xml ),我必须将其应用于按钮

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <stroke
        android:width="1dp"
        android:color="#FFFFFF"/>
</shape>

我无法做的是将 d.xml 应用于我动态创建的按钮。

有人能帮助我吗?提前谢谢。

4 个答案:

答案 0 :(得分:1)

使用Button的设置后台资源:

 for(int i = 0; i < 10; i++){
     Button button = new Button(activity);
     LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(200, 100);
     button.setLayoutParams(lparams);
     button.setTag(0);
     button.setBackgroundResource(R.drawable.d);
     buttonArray[i] = button;
     layout.addView(button);
 }

答案 1 :(得分:1)

使用

 button.setBackgroundResource(R.drawable.your_resource);

答案 2 :(得分:1)

在{for .执行button.setTag(0);

后,在for循环中

答案 3 :(得分:1)

创建背景可绘制后,可以将其应用于代码中动态生成的按钮。

如果您的最低版本是API 21(Lollipop),请使用

button.setBackground(activity.getDrawable(R.drawable.d)

您还可以将setBackgroundDrawable用于较低的API。

更合适的解决方案是使用

button.setBackgroundResouce(R.drawable.d)

放手一搏!