真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android狀態(tài)欄顏色,android導(dǎo)航欄顏色

android怎么設(shè)置狀態(tài)欄和actionbar同顏色?

關(guān)鍵代碼:

成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比龍港網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式龍港網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋龍港地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。

BaseActivity

if (Build.VERSION.SDK_INT = Build.VERSION_CODES.LOLLIPOP) {

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//這就是透明

}

//透明之后所有的頭部都會(huì)頂上來(lái),然后就是加paddingtop了

//頭部layout公用,rl_title_content是最外層的RelativeLayout。

RelativeLayout rl_title_content = findViewById(R.id.rl_title_content);

if (rl_title_content != null) {

//getStatusBarHeight是獲取狀態(tài)欄的高度的

rl_title_content.setPadding(0,Utils.getStatusBarHeight(this),0,0);//左上右下

}

public static int getStatusBarHeight(Context context) {

Class? c = null;

Object obj = null;

Field field = null;

int x = 0, sbar = 0;

try {

c = Class.forName("com.android.internal.R$dimen");

obj = c.newInstance();

field = c.getField("status_bar_height");

x = Integer.parseInt(field.get(obj).toString());

sbar = context.getResources().getDimensionPixelSize(x);

} catch (Exception e1) {

e1.printStackTrace();

}

return sbar;

}

Android設(shè)置狀態(tài)欄顏色和狀態(tài)欄文字、圖標(biāo)顏色

Android開(kāi)發(fā)中,經(jīng)常需要實(shí)現(xiàn)下圖狀態(tài)欄的效果,類(lè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怎么改變狀態(tài)欄顏色

參考如下內(nèi)容:

android4.4 以下修改狀態(tài)欄顏色的方法為:

1、首先會(huì)懂得反編譯,電腦上要安裝java環(huán)境和反編譯工具。沒(méi)有的百度搜索下載安裝。這里就不多說(shuō)了。

2、要準(zhǔn)備一個(gè)framework-res.apk放在一邊待用,把framework-res.apk復(fù)制到反編譯工具里、反編譯framework-res.apk后打開(kāi)res\values\styles.xml。

3、直接搜索以下代碼

style name="TextAppearance.StatusBar" parent="@style/TextAppearance"

你會(huì)看見(jiàn)style name="TextAppearance.StatusBar" parent="@style/TextAppearance"

item name="textSize"14.0sp/item

item name="textStyle"normal/item

item name="textColor"?textColorPrimary/item

/style 然后修改這一段代碼item name="textColor"?textColorPrimary/item 為 item name="textColor"#ff000000/item

000000為顏色代碼 想要什么顏色就修改成自己喜歡的顏色就可以了 顏色對(duì)照表可以參考

4、然后回編譯?;鼐幾g完成后用電腦上的壓縮軟件打開(kāi)回編譯好的framework-res.apk,拖出里面的resources.arsc替換進(jìn)事先準(zhǔn)備好的framework-res.apk里就可以了。然后用復(fù)制到內(nèi)存卡 用RE復(fù)制或者移動(dòng)到system里 修改權(quán)限 3 1 0,在移動(dòng)到framework里覆蓋就可以了。關(guān)機(jī)重啟,狀態(tài)欄的通知內(nèi)容顏色也變了。

Android 狀態(tài)欄的設(shè)置

先看一下默認(rèn)的情況:

藍(lán)色一行是自定義的導(dǎo)航欄,

黑色的是自帶的 ActionBar ,也就是我們說(shuō)的標(biāo)題欄。

首先一般都會(huì)選擇去掉 ActionBar:

隱藏 actionbar 有很多種方法

這種方法是全局中隱藏了標(biāo)題欄。

其實(shí)在我的手機(jī)更新系統(tǒng)之前,隱藏了 ActionBar 后,狀態(tài)欄和自定義的導(dǎo)航欄顏色是相匹配的,不知道什么原因現(xiàn)在默認(rèn)為灰色了。

上面使用的主題雖然隱藏了標(biāo)題欄,但是和我們自定義的導(dǎo)航欄不搭,

這時(shí)候我們可以選擇用自定義的主題(Theme),來(lái)改變狀態(tài)欄:

在 values 下的 style.xml 中添加

或者在 onCreate 中:

上面兩行一般不一起設(shè)置,二選一即可。

第一行設(shè)置導(dǎo)航欄為透明,第二行將導(dǎo)航欄隱藏。

不推薦第二種做法,如果一個(gè) Activity 中設(shè)置了隱藏導(dǎo)航欄而另一個(gè) Activity 沒(méi)有,那兩者切換的時(shí)候會(huì)不好看。

融合的效果:

狀態(tài)欄和 app 頂部相融合了,如果標(biāo)題欄是一張圖片效果會(huì)更好。

這里還有一個(gè)問(wèn)題,狀態(tài)欄的文字和我們導(dǎo)航欄的文字重疊了,

我們可以選擇在布局文件的根元素中添加:

讓布局為狀態(tài)欄留出空間,就不會(huì)出現(xiàn)上面這張被狀態(tài)欄遮擋的情況。

如果像上面的例子是一樣的純色的標(biāo)題欄,我們可以選擇直接改變狀態(tài)欄的顏色解決問(wèn)題。

或者:

不顯示時(shí)間、電量等信息和文字:

同要可以用修改 Theme 來(lái)實(shí)現(xiàn):

或者在 OnCreat() 中加入,還是要注意加在 setContentView() 的前面

如果想讓圖片全屏要注意設(shè)置為:

Android 狀態(tài)欄透明

前言:最近項(xiàng)目大量用到狀態(tài)欄透明,網(wǎng)上也出現(xiàn)很多庫(kù)可以直接拿來(lái)用,個(gè)人認(rèn)為沒(méi)有必要那么重引用到一個(gè)庫(kù)(有木有同學(xué)和我有一樣的想法),所以研究了一番,在此做個(gè)記錄加強(qiáng)記憶也便后期查閱,如果無(wú)意中有幸能幫助到你那就再好不過(guò)了。

Android 從 4.4 (SDK 19) 開(kāi)始支持 系統(tǒng)欄(狀態(tài)欄+導(dǎo)航欄)半透明 效果:

翻譯一下就是:

TranslucentDecor 主題設(shè)置了兩個(gè)屬性 windowTranslucentStatus 和 windowTranslucentNavigation 都為 true,前者指定狀態(tài)欄半透明、后者指定導(dǎo)航欄半透明。

本文只探討“狀態(tài)欄” 。

默認(rèn)樣式是這樣:

可見(jiàn) Toolbar 和系統(tǒng)狀態(tài)欄之間有明顯的分界,我們要實(shí)現(xiàn)的效果是 Toolbar 和狀態(tài)欄背景統(tǒng)一,看起來(lái)像是一個(gè)整體(自行腦補(bǔ)圖片)。

按照官方文檔,我們自定義主題:

對(duì)應(yīng)的 Activity 引用該主題:

我看來(lái)看看效果:

雖然實(shí)現(xiàn)了半透明,但是布局被狀態(tài)欄覆蓋,接下來(lái)在布局文件中設(shè)置 fitSystemWindows (注意加到根節(jié)點(diǎn) ConstraintLayout 上):

來(lái)看看效果:

雖然布局沒(méi)有被狀態(tài)欄覆蓋,但是狀態(tài)欄背景顯然這不是我們想要的效果????

為什么狀態(tài)欄會(huì)這么奇怪?

文章開(kāi)頭的定義中我們說(shuō)了,布局文件會(huì)延伸到狀態(tài)欄所占區(qū)域下, fitsSystemWindows 的作用是給對(duì)應(yīng)的 View 增加 padding(這里以 ConstraintLayout 為例),目的是為了讓其內(nèi)容不被狀態(tài)欄遮擋。

在我們的布局文件中 ConstraintLayout 沒(méi)有設(shè)置背景(默認(rèn)白色),所以狀態(tài)欄默認(rèn)的半透明背景色和 ConstraintLayout 的白色背景疊加,就變成了上圖中的效果。

【總結(jié)】?jī)蓚€(gè)基本概念:

1、 windowTranslucentStatus 設(shè)置為true之后,狀態(tài)欄默認(rèn)是 半透明 的(4.4 是黑色到透明色漸變,5.0+ 是純黑色半透明),和我們要求的 透明 相去甚遠(yuǎn)。更重要的是,布局會(huì)延伸到狀態(tài)欄底下。

2、 android:fitsSystemWindows 簡(jiǎn)單理解 就是 View 為了適配系統(tǒng)狀態(tài)欄和導(dǎo)航欄(不被遮擋)自動(dòng) 增加 padding ,當(dāng)然真正的實(shí)現(xiàn)原理比這復(fù)雜很多而且不同的 View 可以自定義實(shí)現(xiàn)方式。

所以,為了實(shí)現(xiàn)文章開(kāi)頭提出來(lái)的“狀態(tài)欄透明”效果,我們需要處理:

設(shè)置 windowTranslucentStatus 為 true,讓狀態(tài)欄半透明。

在根節(jié)點(diǎn)設(shè)置 android:fitsSystemWindows 使其不被狀態(tài)欄遮擋。

Android 4.4 暫時(shí)沒(méi)有辦法去掉狀態(tài)欄的漸變。

Android 5.0+ 開(kāi)始支持修改狀態(tài)欄顏色,設(shè)置透明色即可把半透明去掉。

看看效果:

我們看到即使?fàn)顟B(tài)欄透明了,但是其底色是一片白,因?yàn)楦?jié)點(diǎn) ConstraintLayout 沒(méi)有設(shè)置背景,大多情況下我們不會(huì)給整個(gè)跟節(jié)點(diǎn)設(shè)置顏色,可以考慮把 android:fitsSystemWindows 設(shè)置到子 View 上,本例中是 AppBarLayout (5.0+ 無(wú)效,只能顯式給 AppBarLayout 加 padding,可以利用其背景色),實(shí)際項(xiàng)目中可靈活調(diào)整。

最終效果:

至此,完成狀態(tài)欄透明效果,網(wǎng)上有很多庫(kù),實(shí)際上都是基于此原理,在此基礎(chǔ)上再自定義 View 做為狀態(tài)欄背景。


分享標(biāo)題:android狀態(tài)欄顏色,android導(dǎo)航欄顏色
當(dāng)前路徑:http://weahome.cn/article/dscjojh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部