一、在res-values-styles.xml,改变ActionBar的样式
<resources>
<!-- 自定义ActionBar -->
<style name="actionbar_custom" parent="@android:style/Widget.Holo.Light.ActionBar">
<!-- 在样式里面直接替换掉actionbar的背景,避免在有的窗口进入慢时导致进入时显示系统默认的actionbar -->
<item name="android:background">@drawable/actionbar_bg</item>
<!-- 在样式里面去掉acionbar的应用图标和标题 -->
<item name="android:displayOptions">useLogo</item>
</style>
<!-- 自定义主题,需要带ActionBar -->
<style name="MyTheme_ActionBar" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/actionbar_custom</item>
</style>
</resources>
二、在清单文件中使用自定义的主题
android:theme="@style/MyTheme_ActionBar"
三、定义ActionBar的布局文件 custom_actionbar.xml (模仿安卓市场)
四、在代码中引入 ActivityMain.java
① 写一个加载自定义ActionBar的方法
/**
* ① 自定义actionbar的布局
*/
public void setActionBarLayout(int layout) {
ActionBar actionBar = getActionBar();
if (null != actionBar) {
actionBar.setDisplayShowCustomEnabled(true);
LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
actionbar_view = inflater.inflate(layout, null);
ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
actionBar.setCustomView(actionbar_view, layoutParams);
}
}
② 在oncreate中调用这个方法 (将ActionBar的布局传进去)
setActionBarLayout(R.layout.custom_actionbar);