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

это код, который я использую в стилях.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>
что происходит, так это то, что сама панель действий тут показать прозрачный backgroundcolor, но вкладки полностью прозрачны (цвет не виден).
Как я могу решить это?
9 ответов:
вызов
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")));
вот мой код для полностью прозрачной панели действий
<!-- 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));Он хорошо работал для меня
это прекрасно работает на моем случае для создания
ActionBarпрозрачными.getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff"))); getSupportActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));
<!-- 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>цвет / actionbar и цвет / tabbar значения цвета, которые являются прозрачными


Comments