Прозрачная панель действий: пользовательская вкладка

Я хочу создать ActionBar с прозрачными вкладками с #3b000000 . Что-то вроде этого, но с вкладками ниже ActionBar:

Введите описание изображения здесь

Это код, который я использую в styles.xml:

 <style name="Theme.MyTheme" parent="@style/Theme.Sherlock.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/ActionBar</item> <item name="windowActionBarOverlay">true</item> <item name="android:windowActionBarOverlay">true</item> <item name="actionBarStyle">@style/ActionBar</item> </style> <style name="ActionBar" parent="@style/Widget.Sherlock.Light.ActionBar"> <item name="android:background">@color/actionbar</item> <item name="background">@color/actionbar</item> <item name="android:actionBarTabStyle">@style/ActionBarTabStyle</item> <item name="actionBarTabStyle">@style/ActionBarTabStyle</item> </style> <style name="ActionBarTabStyle" parent="@style/Widget.Sherlock.ActionBar.TabView"> <item name="background">@color/actionbar_tabs</item> <item name="android:background">@color/actionbar_tabs</item> </style> 

Что происходит, так это то, что сам ActionBar показывает прозрачный цвет фона, но вкладки полностью прозрачны (цвет не отображается).

Как я могу это решить?

Вызовите setStackedBackgroundDrawable() на своем ActionBar :

 getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); ActionBar actionBar = getActionBar(); actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff"))); actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff"))); 

Это приводит (например, к некоторым случайным значкам и вкладкам и двум различным синеватым цветам фона, чтобы выделить эффект):

Введите описание изображения здесь

(Значок обновления – по умолчанию, который имеет небольшую прозрачность. Другие значки – это пользовательские тестовые значки с цветом #FFFFFFFF, то есть без прозрачности).

Я сделал это в проекте, и стиль был таким:

 <style name="AppTheme" parent="android:Theme.Holo"> <item name="android:windowActionBarOverlay">true</item> <item name="android:actionBarStyle">@style/action_bar_theme</item> <item name="android:actionMenuTextColor">#fff</item> </style> <style name="action_bar_theme" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">#b3000000</item> <item name="android:titleTextStyle">@style/action_bar_text</item> </style> 

Как упоминалось в этой статье , использование следующей пользовательской темы работает безупречно.

 <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo"> <item name="android:windowActionBarOverlay">true</item> </style> </resources> 

Чтобы применить оттенок цвета, ответ Гуннара показывает, как это сделать.

 ActionBar actionBar = getActionBar(); actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff"))); actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff"))); 

Вот мой код для полностью прозрачного Actionbar

 <!-- Base application theme. --> <style name="TransparentTheme" parent="android:Theme.Holo.Light"> <!-- Customize your theme here. --> <item name="android:windowBackground">@null</item> <item name="android:actionBarStyle">@style/ActionBarStyle.Transparent</item> <item name="android:windowActionBarOverlay">true</item> </style> <style name="ActionBarStyle.Transparent" parent="android:Widget.ActionBar"> <item name="android:background">@null</item> <item name="android:displayOptions">showHome|showTitle</item> <item name="android:titleTextStyle">@style/ActionBarStyle.Transparent.TitleTextStyle</item> </style> <style name="ActionBarStyle.Transparent.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@android:color/white</item> </style> 

Введите описание изображения здесь

  getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);//or add in style.xml ActionBar actionBar = getActionBar(); ColorDrawable newColor = new ColorDrawable(getResources().getColor(R.color.action_bar_color));//your color from res newColor.setAlpha(128);//from 0(0%) to 256(100%) getActionBar().setBackgroundDrawable(newColor); 

В стиле.xml

 <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo"> <item name="android:windowActionBarOverlay">true</item> </style> </resources> 

Чтобы установить любую панель действий темы прозрачной, как фоновое изображение или цвет, должен быть показан лучший и простой способ его реализации.

  actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(activity, android.R.color.transparent))); ImageView image = new ImageView(this); image.setTag(R.string.decore_view); image.setAdjustViewBounds(true); image.setScaleType(ImageView.ScaleType.CENTER_CROP); image.setLayoutParams(new ViewGroup.LayoutParams(-1, -1)); image.setImageResource(R.drawable.home_bg); ((ViewGroup)((ViewGroup)getWindow().getDecorView())).addView(image, 0); 
 ActionBar actionBar = getSupportActionBar(); actionBar.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

Это сработало для меня

 <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:actionBarTabBarStyle">@style/MyActionBarTabBar</item> <item name="android:windowActionBarOverlay">true</item> </style> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> <item name="android:background">@color/actionbar</item> <item name="android:backgroundStacked">@color/tabbar</item> </style> 

Цвета / действия, цвета и цвета, которые прозрачны