至于各种控件是如何应用这些颜色设置的,则需要经过更多的尝试了。
比如Activity导航栏默认的图标颜色是colorControlNormal,导航栏的底色是colorPrimary,沉浸式状态栏默认的颜色是colorPrimaryDark;
比如FAB的默认颜色是colorAccent;
比如AppCompatCheckBox默认的选中状态的颜色是colorAccent,而默认的未选择状态的颜色的colorControlNormal;
比如AppCompatSpinner的下拉图标的默认颜色也是colorControlNormal。
......
其实涉及到的主要的就是下面这几个参数:
那么问题来了,如果你使用蓝色的沉浸式状态栏,导航栏上的图标则使用白色,那在这个Activity中使用AppCompatCheckBox的时候,未选择状态就也是白色的,此时如果在白色的背景色下,用户就看不出这是个AppCompatCheckBox了。这时候怎么办?如下图(图中使用的是AppCompatSpinner):
其实很简单,在这个AppCompatCheckBox上使用app:theme="@style/MyCheckBox",然后在styles.xml中添加新的
但是需要注意的是,这样可能引起控件其他默认属性的变化,比如CheckBox的textSize会变成1(不使用app:theme的时候和APP的默认字体大小一样)。
android:theme和app:popupTheme的作用,以及在android 3.0以下不起作用问题的解决
一般来说,安卓按钮颜色与背景要保持一致,这样才能让用户感到界面美观、统一、简洁。一般来说,可以使用深色的按钮颜色,比如黑色、深灰色、深蓝色等,而背景可以使用浅色,比如白色、浅灰色、浅蓝色等。这样才能让用户感到界面美观、统一、简洁。在安卓应用程序开发过程中,有时需要监听输入框内文字改变的动态 *** 作。比如当输入框内有文本内容输入时,如果满足某些条件,我们需要动态改变按钮颜色。以下是一种常见的实现方法,大致流程为:1. 给输入框设置监听器,当输入框内的文字改变时触发监听事件。
2. 在监听事件中判断输入框的文本内容是否满足某些条件。
3. 如果满足条件,改变按钮颜色;如果不满足条件,恢复按钮颜色为原始状态。
具体实现方法如下:
1. 给输入框设置监听器:
```
editText.addTextChangedListener(textWatcher)
```
2. 定义监听事件:
```
private TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//文字改变时触发
if (s.length() >0) {
//如果输入框内有文本内容
if (满足条件) {
//如果满足某些条件
button.setBackgroundColor(颜色1)//改变按钮颜色
} else {
//如果不满足条件
button.setBackgroundColor(颜色2)//恢复按钮颜色
}
} else {
//输入框内无文本内容
button.setBackgroundColor(颜色2)//恢复按钮颜色
}
}
@Override
public void_
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)