我无法设置标题栏的背景图像我只能设置颜色,让我知道我必须在下面的代码中更改。 我想要一个精确的下图1复制品,我得到的输出如图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>
答案 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)