private ActionBar mActionbar=null;

private View mCustomActionbar = null;

private void setCustomActionbar() {

    mActionbar = getActionBar();

    mActionbar.setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));

    mActionbar.setDisplayShowTitleEnabled(false);

    mActionbar.setDisplayShowHomeEnabled(false);

    mActionbar.setDisplayShowCustomEnabled(true);

    mCustomActionbar = LayoutInflater.from(this).inflate(R.layout.custom_actionbar_layout, null);

    mActionbar.setCustomView(mCustomActionbar, new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT));

    mActionbar.show();

    invalidateOptionsMenu();

}


//actionbar에 custom view를 등록하여 사용할 경우

//onCreateOptionsMenu에서 inflate하는 menu에는 actionbar에 표시되는 item이 포함되지 않도록 하는 것이 좋다.

@Override

public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();

    inflater.inflate(R.menu.testmenu, menu);

    updateCustomActionbar();

    return true;

}


public void updateCustomActionbar(){

    View item = mCustomActionbar.findViewById(R.id.actionbar_item1);

    //Do something

}



/*

android:showAsAction="always" //actionbar에 표시할지 메뉴 버튼을 눌렀을때 표시할지 설정

    ifRoom : action bar에 표시할 수 있는 공간이 있으면 actionbar에 표시 

    never : 항상 메뉴 버튼에 표시(기본값, showAsAction 설정 값이 없으면 기본으로 설정됨)

    withText : 메뉴로 설정된 아이콘과 텍스트를 actionbar에 표시

    always : 항상 actionbar에 표시


android:actionLayout="@layout/custom_action_layout" //actionbar에 표시될때 사용할 메뉴의 레이아웃 설정

*/


/menu/testmenu.xml


<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item

        android:id="@+id/item1"

        android:title="@string/item1">

    </item>

    <group android:id="@+id/group_item1"

        android:visible="false">

        <item

            android:id="@+id/group_sub_item1"

            android:title="item1">

        </item>

        <item

            android:id="@+id/group_sub_item2"

            android:title="item2">

        </item>

    </group>

    <item

        android:id="@+id/item3"

        android:icon="@drawable/item3_icon"

        android:title="item3">

        <menu>

            <item

                android:id="@+id/item3_sub_item1"

                android:title="@string/item3_sub_item1">

            </item>

            <item

                android:id="@+id/item3_sub_item2"

                android:title="@string/item3_sub_item2">

            </item>

        </menu>

    </item>

</menu>

'programmer > android' 카테고리의 다른 글

ringtone/alarm tone 설정  (0) 2013.07.01
seekbar progress 위치에 value 표시  (0) 2013.06.25
dialog position  (0) 2013.06.20
Using EditText  (0) 2013.06.14
gridview spacing  (0) 2013.06.11

+ Recent posts