3

私は下の画像とまったく同じようにしようとしています。

ここに画像の説明を入力

しかし、私は今、以下のものを手に入れることができます。ここで、2 つの質問があります。

1)actionbarこれを、現在膨らませている単一のアクティビティではなく、すべてのアクティビティで機能させる方法。

2)上の画像は高架レイアウト バーのように見えますが、私のは通常のパネルのように見えます。これらを達成する方法を教えてください。コード スニペットを歓迎します。

私の現在の出力:

ここに画像の説明を入力

アクションバーに膨らませるための私のレイアウトコード:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:background="@drawable/ab_customshape" >

    <ImageButton
            android:id="@+id/homeicon"
            android:layout_width="40sp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true" >
     </ImageButton>

    <TextView
        android:id="@+id/title_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="My Title"
        android:layout_centerVertical="true"
        android:textColor="#ffffff"
        android:textSize="20sp"
        android:textStyle="bold" />
    <ImageButton 
        android:id="@+id/rightbutton"
            android:layout_width="40sp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            android:background="@android:color/transparent"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true" 
        />

</RelativeLayout>

アクティビティ コード スニペット:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        initActionBar();
    }

    private void initActionBar() {
        mActionBar = getSupportActionBar();
        mActionBar.setDisplayShowHomeEnabled(false);
        mActionBar.setDisplayShowTitleEnabled(false);
        mInflater = LayoutInflater.from(this);
        mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
        mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
        mTitleTextView.setText("My Own Title");
        mActionBar.setCustomView(mCustomView);
        mActionBar.setDisplayShowCustomEnabled(true);
    }

@drawable/ab_customshape:

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

    <gradient
        android:angle="-90"
        android:endColor="#DD2ECCFA"
        android:startColor="#DD000000"
        android:type="linear" />

</shape>
4

1 に答える 1

1

1)このアクションバーを、現在膨らませている単一のアクティビティではなく、すべてのアクティビティで機能させる方法。

以下のコードを style.xml に追加します。

<style name="Theme.Styled" parent="Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionModeCloseDrawable">@drawable/collapse_button</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="background">@drawable/ab_customshape</item>
    <item name="android:background">@drawable/ab_customshape</item>

</style>

次に、これをマニフェストでアプリのテーマとして設定します。

<application
    android:allowBackup="true"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:theme="@style/Theme.Styled" > //Here we set the theme

このようにアクションバーにボタンを追加してみてください。

@Override
public boolean onCreateOptionsMenu(Menu menu) {


    menu.add(0, HOMEBUTTON, 0, "Home").setIcon(R.drawable.home_button)

    .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    return true;
}

ここに画像の説明を入力

そして9パッチはこちらここに画像の説明を入力

于 2013-05-27T11:32:40.037 に答える