安卓車(chē)機(jī)色彩設(shè)置參數(shù),具體操作如下。
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)烏審,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
一、AndroidColor設(shè)置
1、在xml文件中
想設(shè)置顏色直接設(shè)置background的屬性或者其他的color屬性。隨便設(shè)置一個(gè)顏色如#000,再點(diǎn)擊左邊的顏色方塊,彈出顏色選擇器選擇顏色
2、在java代碼中
①Color.parseColor("#000");
1
tvShow.setBackgroundColor(Color.parseColor("#000"));
【提示】可以在布局文件中配置好顏色值,然后把用“#”表示的顏色帶到j(luò)ava代碼中用
②Color.BLACK使用Color類自帶的顏色,不過(guò)都是一些基本色
tvShow.setBackgroundColor(Color.BLACK);
③定義Color資源文件,通過(guò)R.color.myColor引用
在Android中我們經(jīng)常需要設(shè)置屏幕頂部狀態(tài)欄的主題和應(yīng)用頁(yè)面保持同一風(fēng)格,本文介紹幾種常用的設(shè)置方案:
首先給出一張圖:
2 2
通過(guò)上圖,我們可以通過(guò)設(shè)置不同的屬性來(lái)達(dá)到控制不同位置顏色的目的,下面給出使用示例,修改res/values-19里面的內(nèi)容:
主要是設(shè)置 colorPrimary,colorPrimaryDark這兩個(gè)屬性的值來(lái)設(shè)置狀態(tài)欄的顏色,需要注意的是:
1:AndroidManifest.xml文件中的targetSdkVersion必須設(shè)置在 21 以上。
2.parent主題必須是 Theme.AppCompat 開(kāi)頭,兼容包下的主題,所以必須一用 v7 包。
在頂部標(biāo)題欄設(shè)置屬性值達(dá)到風(fēng)格一致的目的
首先修改res/values-v19文件夾下的styles.xml文件內(nèi)容如下(如果沒(méi)有可以新建一個(gè)):
然后設(shè)置頂部標(biāo)題控件的兩個(gè)屬性:
這時(shí)狀態(tài)欄會(huì)保持與設(shè)置fitsSystemWindow屬性的控件的背景顏色一致。
Android開(kāi)發(fā)中,經(jīng)常需要實(shí)現(xiàn)下圖狀態(tài)欄的效果,類似于沉浸式狀態(tài)欄,但這里僅僅是討論設(shè)置狀態(tài)欄的顏色和狀態(tài)欄上面文字、圖標(biāo)的顏色的方法。
Android 4.4(API 19)之后,就提供了修改狀態(tài)欄顏色的方法,但是在 Android 6.0(API 23)之后,才支持修改狀態(tài)欄上面的文字和圖標(biāo)顏色,默認(rèn)是白色的。所以會(huì)導(dǎo)致一個(gè)問(wèn)題,在 4.4 到 6.0 之間的系統(tǒng),狀態(tài)欄設(shè)置為淺色的話,狀態(tài)欄上面白色的文字和圖標(biāo)會(huì)看不清,像下面這樣:
有一些第三方的系統(tǒng)提供了設(shè)置狀態(tài)欄和狀態(tài)欄文字、圖標(biāo)顏色的方法,比如小米的MIUI和魅族的Flyme,所以考慮了下比較好的實(shí)現(xiàn)方式是:
當(dāng)然,這里面也會(huì)有坑,比如 MIUI 提供的修改狀態(tài)欄字體顏色方法會(huì)跟 Android 系統(tǒng)自帶的方法沖突,官方說(shuō)明如下: 關(guān)于MIUI狀態(tài)欄字符顏色邏輯調(diào)整說(shuō)明
經(jīng)過(guò)網(wǎng)上的資料和自己的嘗試,MIUI 系統(tǒng)還是同時(shí)使用 MIUI 提供的方法和 Android 系統(tǒng)自帶的方法來(lái)修改狀態(tài)欄字體顏色比較保險(xiǎn)。
基于上面的思考,封裝了設(shè)置 Android 4.4 以上系統(tǒng)狀態(tài)欄顏色和狀態(tài)欄字體、圖標(biāo)顏色的方法:
要在 Application Theme 加上 item name="android:fitsSystemWindows"true/item ,不然頁(yè)面會(huì)頂?shù)綘顟B(tài)欄上面,或者在 Activity 的布局里面加上 android:fitsSystemWindows="true" 和 android:clipToPadding="false" 也可以。
最終實(shí)現(xiàn)的效果如下:
大家有更好的方案可以告訴我~
原文鏈接
Android 中設(shè)置TextView的顏色有方法setTextColor,這個(gè)方法被重載了,可以傳入兩種參數(shù)。一種方法是傳入int color值,要注意這個(gè)int不是R文件中自動(dòng)分配的十六進(jìn)制int值,這是Color類中的靜態(tài)方法構(gòu)造出來(lái)的顏色int值。另一種方法是通過(guò)ColorStateList得到xml中的配置的顏色的。好多需要xml中配置的都要類似這樣的映射xml文件(比如一個(gè)按鈕事件的選擇器,默認(rèn)狀態(tài)為顏色A,點(diǎn)擊時(shí)狀態(tài)為顏色B等等選擇效果)。
setTextColor的兩種重載方法如下:
[java] view plain copy
publicvoidsetTextColor(intcolor)?{
mTextColor?=?ColorStateList.valueOf(color);
updateTextColors();
}
publicvoidsetTextColor(ColorStateList?colors)?{
if(colors?==null)?{
thrownewNullPointerException();
}
mTextColor?=?colors;
updateTextColors();
}
第一種重載方法有以下實(shí)現(xiàn)方式:
方法一:通過(guò)ARGB值的方式
textview.setTextColor(Color.rgb(255,255, 255));
textview.setTextColor(Color.parseColor("#FFFFFF"));
方法二:通過(guò)資源引用
textview.setTextColor(mContext.getResources().getColor(R.drawable.contact_btn_text_red))
#f2497c
第二種重載方法的實(shí)現(xiàn):
[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、如果只是想要設(shè)置灰色?setSaturation(0)
ImageView logo = findViewById(R.id.logo);
ColorMatrix colorMatrix =new ColorMatrix();
//? 1、 設(shè)置顏色矩形陣 主要利用三原色 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 設(shè)置色調(diào) 90代表角度
//2、colorMatrix.setRotate(0, 90);
//三原色的取值的比例值越高越趨向于該色值? 第四個(gè)參數(shù)代表透明度 =1.0f原圖 1.0f根據(jù)比例透明
//3、colorMatrix.setScale(1.1f, 1.1f, 1.1f, 1.0f);
//飽和度0-1 0灰色 1本身
//4、colorMatrix.setSaturation(0);
//設(shè)置
logo.setColorFilter(new ColorMatrixColorFilter(colorMatrix));