Here is what the button looks like after changing the color
Here is what it looks like with "show layout bounds" on
我有一个“添加备注”按钮,显示一个供用户输入备注的对话框。
如果保存了便笺,我想更改按钮的颜色。
我试过这个:
btnNote.setBackgroundColor(view.getContext().getResources().getColor(R.color.NN));
和此:
btnNote.getBackground().setColorFilter(ContextCompat.getColor(view.getContext(), R.color.NN), PorterDuff.Mode.MULTIPLY);
但在这两种情况下,按钮也会变得略大。
如何只更改按钮的颜色?
这是我的布局文件中的按钮:
<Button
android:id="@+id/btnNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="Add note"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnDelete"
app:layout_constraintTop_toTopOf="parent" />
答案 0 :(得分:1)
我在XML android:backgroundTint
视图中使用Button
属性时尝试了所有选项并最终正常工作。
显示以下代码段: -
android:backgroundTint="#6567dc"
<强>问题在于强>
如果您的gradle
档案minSdkVersion
低于21 ,则将其更改为21 或您可以将代码包装到if 条件下检查设备SDK支持,如下所示
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
btnAccept.setBackgroundTintList(ContextCompat.getColorStateList(this, R.color.yourcolor));
}
使用上面的代码输出
颜色更改后
答案 1 :(得分:0)
请尝试 background
backgroundTint
在xml中,
android:backgroundTint="#yourcolor"
在java中,
setBackgroundTintList(ColorStateList list)
AppCompatButton
,
button.setSupportBackgroundTintList(ContextCompat.getColorStateList(this, R.color.yourcolor));
你可以使用,
ViewCompat.setBackgroundTintList(AppCompatButton, ColorStateList)
答案 2 :(得分:0)
我认为它不会变大,你可以在开发者选项中打开名为“show layout bound”的开关,按钮的布局没有改变,你可以自定义一个drawable作为背景。