我正在动态创建按钮 . 我首先使用XML来设置它们的样式,我正在尝试使用下面的XML并使其编程 .
<Button
android:id="@+id/buttonIdDoesntMatter"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="buttonName"
android:drawableLeft="@drawable/imageWillChange"
android:onClick="listener"
android:layout_width="fill_parent">
</Button>
这就是我到目前为止所拥有的 . 除了可绘制之外,我可以做任何事情 .
linear = (LinearLayout) findViewById(R.id.LinearView);
Button button = new Button(this);
button.setText("Button");
button.setOnClickListener(listener);
button.setLayoutParams(
new LayoutParams(
android.view.ViewGroup.LayoutParams.FILL_PARENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT
)
);
linear.addView(button);
10 回答
您可以使用
setCompoundDrawables
方法执行此操作 . 请参阅示例here . 我使用它而不使用setBounds
并且它有效 . 你可以尝试任何一种方式 .UPDATE :在此处复制代码,导致链接断开
or
or
你也可以尝试一下
对我来说,它有效:
我这样做了:
正如@JérémyReynaud指出的那样,如_1144139_中所述,设置左绘图而不更改其他绘图(顶部,右侧和底部)的值的最安全方法是使用setCompoundDrawablesWithIntrinsicBounds按钮中的先前值:
所以你以前的所有drawable都将被保留下来 .
可能会有所帮助:
以下是更改编辑文本中左侧图标的颜色并将其设置在左侧的方法 .
***** Kotlin版本*****
使用下面的代码片段向按钮添加一个drawable:
.
使用Android Vector Drawable的重点
当您使用 android vector drawable 并希望具有 API below 21 的向后兼容性时,请将以下代码添加到:
在应用级别
build.gradle
:在Application类中:
试试这个: