當前位置:首頁 » 安卓系統 » androidactionbar背景

androidactionbar背景

發布時間: 2022-09-22 07:19:54

㈠ 如何使用Java語言修改Action Bar的背景顏色

改變不了顏色是因為你上面的那個程序在主窗口上又加了一個Panel,而你去改變的卻是主窗口的背景色,你可以把按鈕直接這樣寫:con.add(redButton);……去掉panel,然後在actionPerformed方法中這樣寫:frame.getContentPane().setBackground(backgroundcolor);或者你去改變panel的背景色。

當調用startActionMode的時候,actionbar的會被一個新的菜單條所覆蓋,這個菜單條被稱為Contextual Action Bar,Contextual Action Bar的字體或者背景顏色都是跟當前主題相關的,有時候我們不想用主題默認的顏色,而採用自定義的方式。

如何才能自定義Contextual Action Bar的背景顏色呢?

在主題中修改:

<style name="MyActionBarTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionModeCloseDrawable">@drawable/ic_launcher</item>
<item name="android:actionModeBackground">@color/yellow</item>
<!-- ActionMode右邊的按鈕是一個特殊的CloseButton,分割線與CloseButton的Style有關 -->
<!-- 刪除ActionMode的Divider-->
<item name="android:actionModeCloseButtonStyle">@null</item>
</style>

其中actionModeCloseDrawable用於指定左邊關閉按鈕的圖標。而android:actionModeBackground就是Contextual Action Bar的背景色了。

㈡ 如何讓android的actionbar浮動且透明

如上圖所示,谷歌地圖的actionbar是透明的,且浮動在整個布局之上,沒有佔用布局空間。其實要做到這樣的效果,我們首先想到的是兩個方面:
1.將讓actionbar浮動起來。
2.給actionbar一個背景,可以為顏色也可以為圖片。
下面我以背景色為顏色舉個例子。
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);ActionBar actionBar = getActionBar();actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));

google的actionbar是分為上下兩欄顯示的,上面的代碼只能設置頂部actionbar的背景色,為了讓下面的背景色一致,還需要添加一行代碼:
actionBar.setSplitBackgroundDrawable(newColorDrawable(Color.parseColor("#330000ff")));

如果我們不想在代碼中設置actionbar背景,而是在style中修改xml,可以自定義actionbar,然後設置下面三個屬性:
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@drawable/ab_stacked_solid_inverse_holo</item> <item name="android:backgroundStacked">#346c36</item> <item name="android:backgroundSplit">@drawable/ab_stacked_solid_inverse_holo</item> </style>

其中的background和setBackgroundDrawable對應,backgroundSplit和setSplitBackgroundDrawable對應,而backgroundStacked代表的是actionbar選項卡的背景色。
但是actionbar的背景如果設置為純色,或者為不透明的圖片,那麼上面的方法無法使actionbar達到透明的效果。注意上面的代碼中,我們的顏色值並不是純色的而是有一定的透明度。#330000ff的前兩位代表透明度。

㈢ android怎麼設置狀態欄和actionbar同顏色

android 布局 layout relativelayout

除了沉浸模式外,Android 4.4還有新的API,能使應用內的狀態欄和虛擬按鈕透明。其他更多的Android 4.4 APIs可以看這里。

如果要使應用內的狀態欄和虛擬按鈕變成透明有兩種方法。

一種是代碼方式:

?1

2

3Window window = getWindow();

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

另外一種是使用兩個新的主題風格:

Theme.Holo.NoActionBar.TranslucentDecor和Theme.Holo.Light.NoActionBar.TranslucentDecor。

但是這種方式只支持Android4.4以上系統,所以為了保持兼容性,我們還是採用代碼方式比較好。只需要先判斷,如果是4.4以上系統才啟用代碼。

開啟後上下系統欄都透明了。

但是如果應用本身是帶有actionbar或者標題欄的話會就會變得比較尷尬,內容會在上面露出來。這個時候需要在布局文件里加入android:fitsSystemWindows="true"。

android:id="@+id/layout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#c8c8c8" >

android:id="@+id/listview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

但是這樣的話內容就不能從透明的虛擬按鈕下穿過,沒原來那麼好看。我們可以按照以前一樣把根布局設置一個高度為系統欄高度和ActionBar高度的內邊距就可以。

同時關於獲取ActionBar和狀態欄的高度,發現用原來的方法有時候會獲取的值為0。自己google找了一下,找到兩個前輩提供的獲取高度方法,獲取ActionBar高度,獲取狀態欄高度。

8if (android.os.Build.VERSION.SDK_INT > 18) {

Window window = getWindow();

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

//設置根布局的內邊距

RelativeLayout relativeLayout = (RelativeLayout)
findViewById(R.id.layout);

relativeLayout.setPadding(0, getActionBarHeight()+getStatusBarHeight(), 0,
0);

}

27// 獲取手機狀態欄高度

public int getStatusBarHeight() {

Class c = null;

Object obj = null;

Field field = null;

int x = 0, statusBarHeight = 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());

statusBarHeight = getResources().getDimensionPixelSize(x);

} catch (Exception e1) {

e1.printStackTrace();

}

return statusBarHeight;

}

// 獲取ActionBar的高度

public int getActionBarHeight() {

TypedValue tv = new TypedValue();

int actionBarHeight = 0;

if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))//
如果資源是存在的、有效的

{

actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,
getResources().getDisplayMetrics());

}

return actionBarHeight;

}

接下來,因為我自己寫的一些應用是暗色的主題的,會導致透明的狀態欄和ActionBar顏色不太協調。看到有一些應用是把狀態欄的顏色設置成和ActionBar一樣,這種解決方法也不錯。

具體是怎麼實現的也不太清楚,我自己猜測寫了一個差不多狀態欄。我是直接在根視圖加入一個高度為狀態欄高度的TextView,背景設置為和ActionBar一樣。具體代碼如下:

8// 創建TextView

TextView textView = new TextView(this);

LinearLayout.LayoutParams lParams = new
LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, getStatusBarHeight());

textView.setBackgroundColor(Color.parseColor("#3F9FE0"));

textView.setLayoutParams(lParams);

// 獲得根視圖並把TextView加進去。

ViewGroup view = (ViewGroup) getWindow().getDecorView();

view.addView(textView);

在模擬器上看還行,但是在實際的手機當中總感覺ActionBar有點過大,所以我在背景色里加入了一些漸變,在實體手機中就比較好看一點,不會覺得ActionBar太寬了。

android:startColor="#c8c8c8"

android:endColor="#3F9FE0"

android:angle="270"

android:type="linear"/>

㈣ 安卓開發android studio中怎樣自定義actionbar的布局

1theme是用於application或activity的。首先打開AndroidManifest文件查看,一般application節點都有默認主題,

2接下來打開上圖中theme所在的文件。res-->values-->styles。

3打開後。可以看到,name屬性正是步驟一中theme的值。在可以看到parent屬性的值,parent是用於繼承內置樣式的。我們接下來要在該樣式的基礎上修改。

4修改action bar的背景。可以從圖中看到,都是一個引用另一個。圖中黃色高亮的部分,是為了兼容性,可以看到其實值是相同的。在這個例子中,因為theme的parent是Theme.AppCompat.Light.DarkActionBar真正起作用的是不帶『android:』前綴的語句,是為了支持低版本的兼容包。而帶前綴的語句是API 11以上支持的。

5修改布局背景。這個在layout文件中也可以改,不過在application的theme中修改可以應用於所有activity。

㈤ android 怎麼在fragment裡面改變actionbar的背景色

要修改actionBar ,你要在這個裝載fragment的Activity中修改
直接在Activity中,調用getActionBar(); 得到actionBar 再做修改
當然你也可以在fragment調用getActivity().getActionBar() 來得到這個actionBar

㈥ 如何讓android的actionbar浮動且透明

在Android3.0之後,Google對UI導航設計上進行了一系列的改革,其中有一個非常好用的新功能就是引入的ActionBar,他用於取代3.0之前的標題欄,並提供更為豐富的導航效果。

一、添加ActionBar
1、不需要導入ActionBar,因為在android3.0或者以上版本中,ActionBar已經默認的包含在Activity中
2、在Android3.0的默認主題「holographic」中,已經創造了ActionBar
3、當android:minSdkVersion 或者 android:targetSdkVersion 屬性被設置成11或者更高時,應用會被認為是Android3.0版本(默認含有ActionBar)

二、隱藏ActionBar
1、我們可以通過把主題設置為Theme.Holo.NoActionBar為一個Activity去除掉ActionBar。 2、我們也可以通過在代碼中調用show()或者hide()方法來相應的顯示或者隱藏ActionBar
3、在我們使用actionBar.hide();方法是系統默認會將ActionBar佔用的空間分配給界面,此時顯示的界面將會重新繪制。
同樣調用actionBar.show();時也會重新繪制界面。如果我們一個程序需要頻繁的顯示或者隱藏ActionBar的話,這樣
就不會有良好的效果。Google提供給一個屬性可以讓ActionBar浮在界面上,當然你可以讓ActionBar的背景為透明,這樣會有良好的體驗效果。

㈦ android actionbar 如何獲取背景

getActionBar().setBackgroundDrawable(this.getBaseContext().getResources().getDrawable(R.drawable.background));
getActionBar().show();

㈧ 如何更改在 Android ActionMode 背景色

如果您想要更改的操作欄的顏色只是,執行此操作:
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR"));

請參閱下面的鏈接的詳細信息
如果您使用 ActionMode 這個樣式用於任何 ActionMode。您會需要創建你自己的風格來進行自定義
<style name="Widget.ActionMode">
<item name="android:background">?android:attr/actionModeBackground</item>
<item name="android:backgroundSplit">?android:attr/actionModeSplitBackground</item>
<item name="android:height">?android:attr/actionBarSize</item>
<item name="android:titleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Title</item>
<item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Subtitle</item>
</style>

㈨ Android怎麼動態更改actionbar的背景顏色

Android動態更改actionbar的背景顏步驟:

在backgroud下面再寫一個style,修改values-v14文件夾下的style.xml文件
[html] view plain
<resources xmlns:android="http://schemas.android.com/apk/res/android">

<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 14 theme customizations can go here. -->
<item name="android:actionBarStyle">@style/my_actionbar_style</item>
</style>

<style name="my_actionbar_style" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#647b97</item>
<item name="android:titleTextStyle">@style/AcBar_titleStyle</item>
[html] view plain
<item name="android:backgroundStacked">#4A708B</item> <!-- 分離成tab時的tab顏色 -->
[html] view plain
<item name="android:backgroundSplit">@color/ab_backgroundSplit_color</item>
</style>
<style name="AcBar_titleStyle">

<item name="android:textColor">#FFFFFF</item>
</style>

</resources>

<item name="android:backgroundSplit">@color/ab_backgroundSplit_color</item> actionbar item
這樣就分離在底部時候的顏色。

㈩ Android ActionBar 點擊標題有背景色 如何消除

設置title就會提示文字了。
ActionBar 標題欄常用屬性:
1. showAsAction屬性用來定義每個Action是如何顯示的
2. always表示永遠顯示在ActionBar中,如果屏幕空間不夠則無法顯示
3. ifRoom表示屏幕空間夠的情況下顯示在ActionBar中,不夠的話就顯示在overflow中
4. never則表示永遠顯示在overflow中

熱點內容
創建郵箱地址伺服器連接錯誤 發布:2025-01-13 09:49:24 瀏覽:722
linux編輯文檔 發布:2025-01-13 09:47:51 瀏覽:434
二手製冷壓縮機 發布:2025-01-13 09:43:59 瀏覽:584
網魚電腦密碼多少 發布:2025-01-13 09:33:46 瀏覽:463
如何取消子賬號密碼 發布:2025-01-13 09:22:41 瀏覽:346
抖音搜索有緩存 發布:2025-01-13 09:17:28 瀏覽:589
c語言字元數組連接 發布:2025-01-13 08:55:11 瀏覽:900
國二c語言編程題目 發布:2025-01-13 08:45:41 瀏覽:285
ipad軟體如何加密 發布:2025-01-13 08:28:59 瀏覽:278
android的文件操作 發布:2025-01-13 08:24:48 瀏覽:173