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

熱點內容
安卓os14怎麼默認桌面 瀏覽:547
應用市場下載在哪個文件夾 瀏覽:893
安卓上的谷歌地圖怎麼用 瀏覽:181
安卓命令行打包 瀏覽:514
編程文字與數字教學視頻 瀏覽:815
如何看手機號碼注冊哪些app 瀏覽:411
linux查看總內存 瀏覽:850
python進程間共享 瀏覽:436
js如何獲取本地伺服器地址 瀏覽:68
gfx什麼時候支持安卓十一系統 瀏覽:939
壓縮機90兆帕 瀏覽:928
程序員調侃語句 瀏覽:579
不是php函數的是 瀏覽:998
壓縮文件好處 瀏覽:785
3d266期神童三膽計演算法 瀏覽:189
通過愛思助手怎麼下載app 瀏覽:323
vi命令將文件創在桌面上 瀏覽:924
程序員做競價 瀏覽:698
江蘇中小學編程納入課程 瀏覽:732
單純形法包括動態規劃演算法 瀏覽:951