我正在创建一个自定义按钮,该按钮将公开使用。 我想根据状态(如果已启用或禁用)更改按钮的颜色。
答案 0 :(得分:1)
最简单的方法是将其drawable设置为StateListDrawable,其中嵌入了不同的启用和禁用状态。然后,您无需设置它,它会自行设置。
答案 1 :(得分:0)
如果要创建自定义按钮,可以这样做:
public class CustomBtn extends android.support.v7.widget.AppCompatButton {
private Context context;
public CustomBtn(Context context) {
super(context);
this.context = context;
}
public CustomBtn(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
public CustomBtn(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.context = context;
}
@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
if (enabled) {
this.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimary));
} else {
this.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimaryDark));
}
}
}
并使用以下自定义按钮:
CustomBtn customBtn = findViewById(R.id.customBtn); //add a CustomBtn like normal widget in layout xml
customBtn.setEnabled(true);//this button color will be R.color.colorPrimary
customBtn.setEnabled(false);//this button color will be R.color.colorPrimaryDark