扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
安卓车机色彩设置参数,具体操作如下。
创新互联主要从事成都网站建设、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务乌审,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
一、AndroidColor设置
1、在xml文件中
想设置颜色直接设置background的属性或者其他的color属性。随便设置一个颜色如#000,再点击左边的颜色方块,弹出颜色选择器选择颜色
2、在java代码中
①Color.parseColor("#000");
1
tvShow.setBackgroundColor(Color.parseColor("#000"));
【提示】可以在布局文件中配置好颜色值,然后把用“#”表示的颜色带到java代码中用
②Color.BLACK使用Color类自带的颜色,不过都是一些基本色
tvShow.setBackgroundColor(Color.BLACK);
③定义Color资源文件,通过R.color.myColor引用
在Android中我们经常需要设置屏幕顶部状态栏的主题和应用页面保持同一风格,本文介绍几种常用的设置方案:
首先给出一张图:
2 2
通过上图,我们可以通过设置不同的属性来达到控制不同位置颜色的目的,下面给出使用示例,修改res/values-19里面的内容:
主要是设置 colorPrimary,colorPrimaryDark这两个属性的值来设置状态栏的颜色,需要注意的是:
1:AndroidManifest.xml文件中的targetSdkVersion必须设置在 21 以上。
2.parent主题必须是 Theme.AppCompat 开头,兼容包下的主题,所以必须一用 v7 包。
在顶部标题栏设置属性值达到风格一致的目的
首先修改res/values-v19文件夹下的styles.xml文件内容如下(如果没有可以新建一个):
然后设置顶部标题控件的两个属性:
这时状态栏会保持与设置fitsSystemWindow属性的控件的背景颜色一致。
Android开发中,经常需要实现下图状态栏的效果,类似于沉浸式状态栏,但这里仅仅是讨论设置状态栏的颜色和状态栏上面文字、图标的颜色的方法。
Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清,像下面这样:
有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的Flyme,所以考虑了下比较好的实现方式是:
当然,这里面也会有坑,比如 MIUI 提供的修改状态栏字体颜色方法会跟 Android 系统自带的方法冲突,官方说明如下: 关于MIUI状态栏字符颜色逻辑调整说明
经过网上的资料和自己的尝试,MIUI 系统还是同时使用 MIUI 提供的方法和 Android 系统自带的方法来修改状态栏字体颜色比较保险。
基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色和状态栏字体、图标颜色的方法:
要在 Application Theme 加上 item name="android:fitsSystemWindows"true/item ,不然页面会顶到状态栏上面,或者在 Activity 的布局里面加上 android:fitsSystemWindows="true" 和 android:clipToPadding="false" 也可以。
最终实现的效果如下:
大家有更好的方案可以告诉我~
原文链接
Android 中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数。一种方法是传入int color值,要注意这个int不是R文件中自动分配的十六进制int值,这是Color类中的静态方法构造出来的颜色int值。另一种方法是通过ColorStateList得到xml中的配置的颜色的。好多需要xml中配置的都要类似这样的映射xml文件(比如一个按钮事件的选择器,默认状态为颜色A,点击时状态为颜色B等等选择效果)。
setTextColor的两种重载方法如下:
[java] view plain copy
publicvoidsetTextColor(intcolor) {
mTextColor = ColorStateList.valueOf(color);
updateTextColors();
}
publicvoidsetTextColor(ColorStateList colors) {
if(colors ==null) {
thrownewNullPointerException();
}
mTextColor = colors;
updateTextColors();
}
第一种重载方法有以下实现方式:
方法一:通过ARGB值的方式
textview.setTextColor(Color.rgb(255,255, 255));
textview.setTextColor(Color.parseColor("#FFFFFF"));
方法二:通过资源引用
textview.setTextColor(mContext.getResources().getColor(R.drawable.contact_btn_text_red))
#f2497c
第二种重载方法的实现:
[java] view plain copy
textview.setTextColor(mContext.getResources().getColorStateList(R.drawable.big_btn_text_color));
选择器big_btn_text_color.xml
[html] view plain copy
//主要用到ColorMatrix、如果只是想要设置灰色 setSaturation(0)
ImageView logo = findViewById(R.id.logo);
ColorMatrix colorMatrix =new ColorMatrix();
// 1、 设置颜色矩形阵 主要利用三原色 Red、Green、Blue
colorMatrix.set(new float[]{
1, 0f, 0f, 0f, 0f //R
, 0, 1, 0, 0, 0 //G
, 0, 0, 1, 0, 0 //B
, 0, 0, 0, 1, 0}); //alpha
/* [a, b, c, d, e,
f, g, h, i, j,
k, l, m, n, o,
p, q, r, s, t ]*/
/* R rsquo; =a * R + b * G + c * B + d * A + e;
G rsquo; =f * R + g * G + h * B + i * A + j;
B rsquo; =k * R + l * G + m * B + n * A + o;
A rsquo; =p * R + q * G + r * B + s * A + t;*/
// 0 red 1 green 2 blue 设置色调 90代表角度
//2、colorMatrix.setRotate(0, 90);
//三原色的取值的比例值越高越趋向于该色值 第四个参数代表透明度 =1.0f原图 1.0f根据比例透明
//3、colorMatrix.setScale(1.1f, 1.1f, 1.1f, 1.0f);
//饱和度0-1 0灰色 1本身
//4、colorMatrix.setSaturation(0);
//设置
logo.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流