class BaseActivity extends ActionBarActivity{
private void initActionBar() {
actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
// 2.3版本
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
actionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.blue_background));
}
setActionBarLogoAlpha();
}
public void setActionBarLogoAlpha() {
Drawable drawable = getResources().getDrawable(R.drawable.logo_background);
drawable.setAlpha(0);
actionBar.setLogo(drawable);
}
/*
* 条目过多时会显示三个竖着的小点的菜单
*/
protected void setActionBarOverflow() {
try {
ViewConfiguration mconfig = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(mconfig, false);
}
} catch (Exception ex) {
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();//返回按钮
break;
}
return super.onOptionsItemSelected(item);
}
/*
* 显示菜单图标(默认为不显示)
*/
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
}
}
}
return super.onMenuOpened(featureId, menu);
}
}
<application android:theme="@style/App10000Theme" >
vlaues下面themes.xml
<style name="App10000ThemeBase" parent="@style/Theme.AppCompat.Light.DarkActionBar" />
<style name="App10000Theme" parent="@style/App10000ThemeBase" />
vlaues-v11下面themes.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Main10000Theme" parent="@style/App10000Theme">
<item name="android:logo">@drawable/actionbar_icon</item>
</style>
<style name="App10000Theme" parent="@style/App10000ThemeBase">
<item name="android:actionBarStyle">@style/ActionBarGenearal</item>
<item name="android:actionButtonStyle">@style/ActionBarButton</item>
<item name="android:actionOverflowButtonStyle">@style/ActionBarButtonOverflow</item>
<item name="android:homeAsUpIndicator">@drawable/back_arrow</item>
<item name="android:actionMenuTextAppearance">@style/MenuTextAppearance</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="MenuTextAppearance" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textSize">@dimen/text_large</item>
<item name="android:textColor">@color/font_white</item>
</style>
<style name="ActionBarGenearal" parent="@style/Widget.AppCompat.ActionBar">
<item name="android:titleTextStyle">@style/ActionBarTitleText</item>
<item name="android:layout_height">@dimen/actionbar_height</item>
<item name="android:background">@drawable/title_bar_bg</item>
<item name="android:alpha">0.95</item>
</style>
<style name="ActionBarButton" parent="@style/Widget.AppCompat.ActionButton">
<item name="android:scaleType">centerInside</item>
<item name="android:background">@drawable/home_title_bar_btn_bg</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
<!-- Support library compatibility -->
</style>
<style name="ActionBarButtonOverflow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
<item name="android:scaleType">centerInside</item>
<item name="android:src">@drawable/menu_more</item>
<item name="android:background">@drawable/home_title_bar_btn_bg</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
</style>
<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/font_white</item>
<!-- The textColor property is backward compatible with the Support Library -->
</style>
</resources>