以编程方式设置单选按钮上的按钮色调
Posted
技术标签:
【中文标题】以编程方式设置单选按钮上的按钮色调【英文标题】:Setting button tint on radio button programmatically 【发布时间】:2018-04-24 12:18:31 【问题描述】:我想以编程方式设置单选按钮色调。在 xml 中有一个名为“buttonTint”的属性来完成这项工作。但是在程序中我找不到任何方法来为单选按钮设置色调或颜色。有什么方法或方法可以做到吗?
<RadioButton
android:buttonTint="@color/colorPrimaryDark"
android:layout_
android:layout_
android:text="Payeer" />
【问题讨论】:
【参考方案1】:您可以使用setButtonTintList (ColorStateList tint)
对可绘制的按钮应用颜色。不修改当前的着色模式,默认为SRC_IN。
对
setButtonDrawable(Drawable)
的后续调用将自动改变drawable 并使用setTintList(ColorStateList)
应用指定的色调和色调模式。
示例代码
public class MainActivity extends AppCompatActivity
RadioButton radioButton;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioButton = findViewById(R.id.radioButton);
ColorStateList myColorStateList = new ColorStateList(
new int[][]
new int[]getResources().getColor(R.color.colorPrimaryDark)
,
new int[]getResources().getColor(R.color.colorAccent)
);
radioButton.setButtonTintList(myColorStateList);
【讨论】:
谢谢兄弟。这是工作。但它需要最低限度的 API(棒棒糖)。运行的手机版本低于LOLLIPOP会不会死机? @SorwarHossainMostafais it going to crash if the version of the running phone lower than LOLLIPOP
答案是 NO【参考方案2】:
基于之前的两个答案,设置背景颜色的一行代码是
Java 代码
button.setButtonTintList(ColorStateList.valueOf(getColor(R.color.red)));
Kotlin 代码
button.buttonTintList=ColorStateList.valueOf(getColor(R.color.red))
【讨论】:
【参考方案3】:使用下面的代码:
button.setBackgroundTintList(ColorStateList.valueOf(resources.getColor(R.id.red)));
【讨论】:
以上是关于以编程方式设置单选按钮上的按钮色调的主要内容,如果未能解决你的问题,请参考以下文章