導航:首頁 > 操作系統 > android設置標題欄顏色

android設置標題欄顏色

發布時間:2023-12-10 22:18:34

android中如何設置上下文菜單顏色

public class ContextMenuActivity extends Activity
{
private final static int ITEM0 = Menu.FIRST;
private final static int ITEM1 = Menu.FIRST + 1;
private final static int ITEM2 = Menu.FIRST + 2;
private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.context_menu);
setTitle("單擊Menu鍵看到效果!");
textView = (TextView) findViewById(R.id.tv1);

this.registerForContextMenu(textView);// 將上下文注冊到TextView
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
menu.add(0, ITEM0, 0, "紅色字體");
menu.add(0, ITEM1, 0, "綠色字體");
menu.add(0, ITEM2, 0, "白色字體");

}

@Override
public boolean onContextItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case ITEM0:
textView.setTextColor(Color.RED);
break;
case ITEM1:
textView.setTextColor(Color.GREEN);
break;
case ITEM2:
textView.setTextColor(Color.WHITE);
break;
default:
break;
}
return true;
}

}

② Android設置狀態欄顏色和狀態欄文字、圖標顏色

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導航欄與狀態欄顏色及透明度

首先創建一個空項目,如下圖

可以看到狀態欄是白字黑背景, 導航欄也是白圖標黑背景
嘿嘿, 我們先把狀態欄隱藏掉,在添加一個ImageView, 讓ImageView做背景(方便查看)

樣子如下:

將狀態欄和導航欄設置透明, 找到 Manifest.xml 文件, 在主題樣式中修改

android:statusBarColor 設置狀態欄背景色
android:navigationBarColor 同上
android:windowLightStatusBar 設置狀態欄文字色, true為深色, false為白色
android:windowLightNavigationBar 同上
android:windowTranslucentStatus 設置狀態欄半透明狀態, true為半透明, false為不透明
android:windowTranslucentNavigation 同上

最後兩個半透明狀態下面沒用, 可自己嘗試看效果

效果圖如下:

可以看到導航欄與狀態欄並沒有透明,原因是默認不能佔用狀態欄空間與導航欄空間,根布局背景為白色,所有這里顯示白色
可以通過設置 getWindow().getDecorView().setSystemUiVisibility() 來適配

View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 適配狀態欄空間
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 適配導航欄空間
效果如下:

④ 怎麼自定義Android標題欄修改TitleBar的布局

Android程序默認的Activity標題欄只能顯示一段文字,而且不能改變它的布局、顏色、標題欄的高度等。如果想要在標題欄加上個圖標、button、輸入框、進度條、修改標題欄顏色等,只能使用自定義的標題欄。自定義標題欄可以通過在onCreate函數中添加以下代碼來實現,需要注意的是代碼的順序必須按照下面的樣式,否則將無效。
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.mainactivity); //Activity的布局
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar); //標題欄的布局
雖然上面這樣可以在標題欄加入一些控制項,但是仍然不能改變標題欄的高度、背景色,要想達到這個目的,只能使用theme(主題)。因此往project里先添加一個style。改變背景色修改android:windowTitleBackgroundStyle的值,改變標題欄高度則修改android:windowTitleSize的值。下面是一個示例:






接著再修改AndroidManifest.xml文件,找到要自定義標題欄的Activity,添加上android:theme值,比如:

Java代碼
android:theme值就是上面那個style.xml文件里定義的一個style的name值。

按照以上的步驟,修改標題欄布局、高度、背景色的功能就實現了。

閱讀全文

與android設置標題欄顏色相關的資料

熱點內容
java獲取byte 瀏覽:55
eth對抗量子加密 瀏覽:877
vs2013可以用c編譯器嗎 瀏覽:376
下載的ios要解壓嗎 瀏覽:5
通達信pvi指標源碼 瀏覽:640
鄭州綠城通行app怎麼使用 瀏覽:314
雲南中文版伺服器託管雲空間 瀏覽:124
寬頻伺服器無響應是什麼情況 瀏覽:450
醫易時空醫學pdf 瀏覽:389
菠蘿筆記app怎麼樣 瀏覽:298
查看mysql表的命令 瀏覽:684
pomelo命令 瀏覽:840
51單片機音樂有延時 瀏覽:932
怎麼在appstore注銷 瀏覽:863
伺服器怎麼給別人發錢 瀏覽:94
路虎攬勝更換壓縮機 瀏覽:369
rediszset源碼解析 瀏覽:823
安卓如何設置自製鈴聲 瀏覽:573
java打開文件夾路徑 瀏覽:552
助眠視頻重度免疫者專用耳機解壓 瀏覽:936