android_ActionBar

ActionBar代码

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>


你可能感兴趣的:(android_ActionBar)