我使用这个基于Web的工具生成了操作栏样式,这是非常常见的 http://jgilfelt.github.io/android-actionbarstylegenerator/
我将'android-support-v7-appcompat'作为我工作区中的单个项目。我将通过从此工具下载zip文件生成的res文件夹的所有内容转储到此项目中。
我在动作栏和上下文菜单(弹出窗口)中使用了深蓝色的颜色。 但是,我无法从这个主题实现自定义外观。大多数元素/组件显示默认外观。 操作栏为黑色(而不是蓝色),弹出菜单为灰色(而不是浅蓝色)
我的value.xml来自值文件夹
<style name="Theme.dinemobileandro" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarItemBackground">@drawable/selectable_background_dinemobileandro</item>
<item name="popupMenuStyle">@style/PopupMenu.dinemobileandro</item>
<item name="dropDownListViewStyle">@style/DropDownListView.dinemobileandro</item>
<item name="actionBarTabStyle">@style/ActionBarTabStyle.dinemobileandro</item>
<item name="actionDropDownStyle">@style/DropDownNav.dinemobileandro</item>
<item name="actionBarStyle">@style/ActionBar.Solid.dinemobileandro</item>
<item name="actionModeBackground">@drawable/cab_background_top_dinemobileandro</item>
<item name="actionModeSplitBackground">@drawable/cab_background_bottom_dinemobileandro</item>
<item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.dinemobileandro</item>
<!-- Light.DarkActionBar specific -->
<item name="actionBarWidgetTheme">@style/Theme.dinemobileandro.Widget</item>
</style>
我已经在清单文件中进行了必要的更改
<application
android:name="com.railyatri.in.mobile.MainApplication"
android:allowBackup="true"
android:allowClearUserData="true"
android:enabled="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.dinemobileandro" >
我已经按照本博客中提到的步骤进行了密切关注,以前它对我来说是一个sherlock主题。 http://java.dzone.com/articles/creating-custom-android-styles 但是,这一次,我迁移到appcompat,它停止了工作。我经常搜索SO和Google,并尝试了一些建议,但都是徒劳的。
请帮忙。提前致谢。
答案 0 :(得分:4)
使用AppCompat v21,不推荐使用actionbarstylegenerator。
现在可以非常简单地自定义ActionBar(或更好的Toolbar)。 只需使用这样的东西:
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- Set AppCompat's color theming attrs -->
<item name="colorPrimary">@color/my_color</item>
<item name="colorPrimaryDark">@color/my_darkercolor</item>
</style>
您可以在官方博客中找到更多信息: http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html
答案 1 :(得分:0)
在Android清单上:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.dinemobileandro" >
在样式xml:
上<style name="Theme.dinemobileandro" parent="AppTheme">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/blue</item>
<item name="background">@drawable/blue</item>
关于drawables xml:
<resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">
<drawable name="blue">#6189C5</drawable>
</resources>
活动工具栏为蓝色(#6189C5),使用API 21进行编译
完成this答案中的信息(如Apurva任命)
答案 2 :(得分:0)
您是否已尝试更改Java文件? 像这样:
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);
getSupportActionBar().setTitle(Html.fromHtml("<font color=\"grey\">" + getString(R.string.app_name) + "</font>"));
getSupportActionBar().setBackgroundDrawable(..);
答案 3 :(得分:0)
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/my_actionbar_color</item>
<item name="colorPrimaryDark">@color/my_actionbar_dark_color</item>
<!-- if you need customization -->
<item name="actionBarStyle">@style/MyActionBarStyle</item>
</style>
请记住使用
parent="Theme.AppCompat.Light"
不是
parent="@style/Theme.AppCompat.Light"