右上角菜单选项

时间:2015-01-10 10:14:28

标签: android

image1 我无法设置标题栏的背景图像我只能设置颜色,让我知道我必须在下面的代码中更改。 我想要一个精确的下图1复制品,我得到的输出如图2所示

image 2          

    <ImageView
        android:id="@+id/header"
        android:background="@drawable/ic_launcher"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ShowRoom"
        android:textColor="@android:color/black"
        android:textStyle="bold"/>

    <ImageView
        android:id="@+id/header1"
        android:drawableRight="@drawable/menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</LinearLayout>

和我的活动java文件

public class ItemActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

        setContentView(R.layout.itemlist);

        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.item);
    }
}

和styles.xml

<style name="TitleBarTheme" parent="android:Theme">
            <item name="android:windowTitleSize">35dip</item>
            <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBarBG</item>
        </style>

1 个答案:

答案 0 :(得分:1)

对于文本对齐,这应该这样做

<TextView android:id="@+id/left_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_centerHorizontal="true"
    android:text="ShowRoom" />

对于ActionBar,首先将xml自定义布局添加到布局文件夹,如下所示: 的 custom_actionbar_layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<TextView
    android:id="@+id/action_bar_title"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textColor="#ffffff"
    android:gravity="center"
    android:text="@string/app_name"
    android:textAppearance="?android:textAppearanceLarge"
    android:ellipsize="end"
    android:padding="5dp"
    android:maxLines="1"
    />
</LinearLayout>

在你的活动中:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.Layout.xyz);
    initUI();
}
private void initUI(){
    ActionBar mActionBar = getSupportActionBar();

    mActionBar.setDisplayShowHomeEnabled(false);
    mActionBar.setIcon(R.drawable.ic_launcher);
    mActionBar.setDisplayShowCustomEnabled(true);
    mActionBar.setCustomView(R.layout.custom_actionbar_layout);
}

对于ActionBar右侧的菜单图标,它被称为MenuItem,尝试使用&#34; onCreateOptionsMenu&#34;来充气菜单。并将showAsAction设置为xml到你想要的任何内容,例如将xml添加到res / menu文件夹,如下所示:

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

<item
    android:id="@+id/ContctUs"
    android:orderInCategory="100"
    android:showAsAction="collapseActionView|withText"
    android:title="@string/ContactUs"
    android:icon="@drawable/ic_action_info"/>

<item
    android:id="@+id/skin1"
    android:orderInCategory="101"
    android:showAsAction="collapseActionView|withText"
    android:title="@string/skin1"
    android:visible="false"
    android:icon="@android:drawable/ic_menu_view"/>

在您的活动中:

@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    new MenuInflater(this).inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}
@Override
  public boolean onOptionsItemSelected(MenuItem item) {
      if (item.getItemId() == R.id.ContctUs) {
        startActivity(new Intent(this,ContactUs.class));
      return(true);
      }else if(...){...}
      return super.onOptionsItemSelected(item);
  }

希望这有效。 注意: 此方法用于Pre-L设计,如果要定位android-L,请考虑使用工具栏。(support.v7.widget.Toolbar)