導航:首頁 > 操作系統 > 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設置標題欄顏色相關的資料

熱點內容
大同有什麼好玩伺服器地址 瀏覽:360
訪問另一台電腦的文件夾如何拼寫 瀏覽:378
輸入對稱加密演算法的是 瀏覽:616
航線推薦每天三班加密深圳航線 瀏覽:950
解壓小視頻刮肥皂講甜故事 瀏覽:416
453均線指標源碼 瀏覽:46
程序員在外包公司 瀏覽:990
如何改快捷方式為解壓 瀏覽:308
為什麼ns總是與伺服器連接斷開 瀏覽:353
廊坊接cnc編程兼職 瀏覽:937
江蘇伺服器應用線束加工雲主機 瀏覽:109
安卓手機名字如何變成透明的 瀏覽:116
1進制演算法公式 瀏覽:611
程序員多久敲壞一把機械鍵盤 瀏覽:589
安慶計算機編程培訓班 瀏覽:463
Linux伺服器請求log如何查看 瀏覽:465
outpdf 瀏覽:164
加密錢包市值排名 瀏覽:170
文件怎麼電腦解壓 瀏覽:680
網站源碼傳輸到阿里 瀏覽:295