支持库22.1引入了一个新的AppCompatButton,它应该是tint意识和一个新的DrawableCompat类来设置一个drawable的色调。
我只是认为现在应该很容易创建彩色按钮并以编程方式更改按钮颜色。
我在代码中创建一个按钮,获取它的背景,并尝试使用新的DrawableCompat类对其进行着色,然后将其设置回按钮。
AppCompatButton btn = new AppCompatButton(context);
Drawable tintDr = DrawableCompat.wrap(btn.getBackground());
DrawableCompat.setTint(tintDr, Color.BLUE);
btn.setBackground(tintDr);
结果是在Android 5.x上按钮是蓝色的,但是涟漪效应会丢失,单击按钮看起来很奇怪。 在Android< 5.0按钮是灰色的。
如何在所有Android版本上以编程方式为按钮着色?