可以使用Android数据绑定库和ColorStateList来设置CardView的颜色。下面是一个示例代码:
android {
...
dataBinding {
enabled = true
}
}
标签包裹布局,并在CardView的background属性中使用数据绑定表达式来设置颜色:
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
// 创建一个颜色状态列表
int[][] states = new int[][] {
new int[] {-android.R.attr.state_pressed}, // 默认状态
new int[] {android.R.attr.state_pressed} // 按下状态
};
int[] colors = new int[] {
Color.parseColor("#000000"), // 默认状态的颜色
Color.parseColor("#FF0000") // 按下状态的颜色
};
ColorStateList colorStateList = new ColorStateList(states, colors);
// 设置颜色状态列表到布局中
binding.setColorState(colorStateList);
}
}
通过这种方式,可以根据不同的状态设置CardView的颜色,例如在按下时改变颜色。