1. 程式人生 > >【Android UI】狀態列和toolbar顏色一致

【Android UI】狀態列和toolbar顏色一致

1、在style.xml中定義toolbar的顏色

<resources>

    <!-- Base application theme. -->
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <!-- toolbar(actionbar)顏色 -->
        <item name="colorPrimary">#4876FF</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>

    <style name="AppTheme" parent="@style/AppBaseTheme"></style>

</resources>

2、佈局檔案新增屬性
    android:fitsSystemWindows="true"
    android:clipToPadding="true"

3、在Activity的onCreate(Bundle savedInstanceState)方法中新增程式碼
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        Window window = getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
                | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        //獲取樣式中的屬性值
        TypedValue typedValue = new TypedValue();
        this.getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true);
        int[] attribute = new int[] { android.R.attr.colorPrimary };
        TypedArray array = this.obtainStyledAttributes(typedValue.resourceId, attribute);
        int color = array.getColor(0, Color.TRANSPARENT);
        array.recycle();

        window.setStatusBarColor(color);
    }

    setContentView(R.layout.activity_main);

}

相關推薦

Android UI狀態toolbar顏色一致

1、在style.xml中定義toolbar的顏色 <resources> <!-- Base application theme. --> <style name="AppBaseTheme" parent="Theme.

Android之隱藏狀態、設定全屏、取消全屏

我將這三個設定程式碼寫在一個工具類當中,當你要對某個Activity呼叫這三個功能的時候,把Activity本身作為引數傳遞進去即可。 程式碼如下: <span style="font-fa

設計模式狀態模式職責鏈的對比

          先簡單的看一下兩個設計模式的官方解釋         Chain ofResponsibility(CoR)模式也叫職責鏈模式或者職責連鎖模式,是行為模式之一,該模式構造一系列分別

Android UI圖片 + 文字展示by SpannableStringBuilder

起源 圖片和文字混合展示,比如這麼個需求,需要在每段文字的左邊要有一個小圓點,(小圓點符號在android系統中並不支援)。 先用TextView的setDrawableLeft, 嗯,達到要求,那麼換個行看看。 喔,糟糕,這個setDrawab

android 自定義狀態導航欄分析與實現

效果   android 4.4之後,系統是支援自定義狀態列和導航欄的,舉個最典型的例子就是bilibili客戶端了(iOS版本和android版本能用兩套完全不一樣符合各自系統的設計ui,良心啊~),頂部狀態列為粉色,底部導航欄為半透明色:      接

Android 沉浸式狀態 activity 進出動畫

在某些情況下,我們需要設定狀態列的顏色,達到一種色調統一的效果。因此 便需要沉浸式樣式。 colorPrimary、colorPrimary、colorAccent 狀態列相關的屬性 同時在APP頁面

Android UI自定義TextView實現動態的文字閃動效果

這段時間一直在看自定義View感覺很有意思,今天剛剛看到了一個實現動態的文字閃動效果的自定義TextView,其原理是利用LinearGradient和Matrix來實現的,執行效果如下: 要想實現這一個效果,可以充分利用Android中Paint物件的S

實戰乾貨透明狀態導航欄的終極解決方案

本文主要分享了透明狀態列和導航欄的終極解決方案。以後這類問題,一文搞定 這個技術痛點遇到過的都懂~本文幫你徹底解決這個痛點~還不快收藏   背景   在我做 Android 開發之前,我就發現有些 App 的狀態列和導航欄有透明效果,或者是沉浸式效果,比如說酷

Android沉浸式狀態與EditText問題沉浸式狀態實現及遇到的坑

Android4.4以前的版本,狀態列都是一塊黑色的,個人認為還是比較醜的。自4.4開始,Android已經支援透明狀態列了(俗稱沉浸式狀態列)。個人認為支援沉浸式狀態列的app逼格還是比較高的,為了緊跟潮流,我們專案中也準備加入沉浸式狀態列。在實現沉浸式狀態列的過程中踩了不

android狀態顏色ToolBar保持一致

為了使狀態列顏色和ToolBar保持一致保持一致好看些,就需要下面的簡單配置。1、在當前的Activity中程式碼動態設定:if (Build.VERSION.SDK_INT >= Build.V

Android開發使用者介面設計-使用XMLJava程式碼混合控制UI介面

個人資訊 就職: 聚項資訊科技有限公司 職位:中級Java開發工程師 負責:上汽系統開發與維護 院校:河南理工大學 專業:軟體工程12級 郵箱:[email protected] Q Q :10101000101001010111 1101111010

Android狀態相關適配(判斷MIUI,Flyme,狀態圖示顏色切換,獲取狀態高度,沉浸式狀態相關等)

對於狀態列相關適配這個事情,真是讓人頭疼的一個模組。因為負責的專案主題色偏偏是白色,不但要去適配 MIUI ,Flyme(因為這兩個都可以實現沉浸式,並且圖示可以切換成黑色),也要分別適配 Android 6.0 以下, Android 6.0 起兩種不同情況(6.0 起原

Android狀態通知Notification、NotificationManager詳解

在Android系統中,發一個狀態列通知還是很方便的。下面我們就來看一下,怎麼傳送狀態列通知,狀態列通知又有哪些引數可以設定? 首先,傳送一個狀態列通知必須用到兩個類:  NotificationManager 、 Notification。 NotificationM

Android面試(一):Android中activity儲存狀態資料到底該在哪個方法中進行

        今天接到一個電面,途中面試官問到一個問題,如果一個activity在後臺的時候,因為記憶體不足可能被殺死,在這之前如果想儲存其中的狀態資料,比如說客戶填的一些資訊之類的,該在哪個方法中進行。         我聽到的第一反應就是說:在onPause方法中進

Android實戰沉浸式狀態實現(上)

傳統的手機狀態列是呈現出黑色條狀的,有的和手機主介面有很明顯的區別。這樣就在一定程度上犧牲了視覺寬度,介面面積變小。 沉浸模式的狀態列和主介面完全融為了一體,在設計上有不同的視覺感受。 我們先上兩張圖,很容易看出區別:        Android在4.4的時候增加了透

算法實現棧

deque 錯誤 line b- 判斷 linked 元素 type file 棧(stack) 棧(stack)是一種後進先出(LIFO)的集合類型, 即後來添加的數據會先被刪除 可以將其類比於下面文件的取放操作:新到的文件會被先取走,這使得每

Android測試UI自動化代碼優化之路

比較 互聯網產品 ref 註意 封裝 例子 成了 相對 tail 關於UI自動化的抱怨   聽過不少人這樣講 “UI自動化非常不穩定,需求一改,界面一遍,全部都費了”。我相信做過的人可能也會有同感。既然這個問題一直都是存在的,那麽為什麽沒有人仔細分析原因呢?   我的老板

Android狀態導航欄

1.隱藏狀態列或導航欄 View decordView = getWindow().getDecorView(); /*SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN 分別代表隱藏導航欄和狀態列

Android實現修改狀態背景、字型圖示顏色的方法

前言: Android開發,對於狀態列的修改,實在是不友好,沒什麼api可以用,不像ios那麼方便.但是ui又喜歡只搞ios一套.沒辦法.各種翻原始碼,寫反射.真的蛋疼. 需求場景: 當toolbar及狀態列需要為白色或淺色時(如簡書),狀態列由於用的Light風格Theme,字型,

Android 狀態actionbar的顏色設定

1 前言 一般我們在Android的APP開發中,APP的介面如下:  設定actionbar的顏色: 配置檔案AndroidManifest.xml 中設定沒有actionbar的佈局 <activity android:name=".view