Android ActionBar - 如何在中心对齐中添加徽标

时间:2015-06-18 08:36:39

标签: android android-actionbar

我是Android开发的新手,我想为我的客户制作一个导航抽屉。

如何在导航栏中的操作栏中添加徽标并删除标题。

我的代码:

活动

 public void restoreActionBar() {
    ActionBar actionBar = getSupportActionBar();
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#D5D2D4")));
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setTitle(mTitle);
    actionBar.setDisplayUseLogoEnabled(true);
}

清单活动

   <activity
        android:name=".activity.Grid_Home_Activity"
        android:label="@string/title_activity_grid__home_"
        android:theme="@style/Theme.ActionBarJp">
    </activity>

样式

<style name="Theme.ActionBarJp" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarSize">60dp</item>
    <item name="logo">@drawable/logo</item>
    <item name="displayOptions">useLogo|showHome</item>
</style>

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

不推荐使用ActionBar。使用ToolBar。 然后在工具栏对象中心使用带有徽标的ImageView。 看看this

答案 1 :(得分:0)

您可以使用https://github.com/jgilfelt/SystemBarTint此库 并使用如下。

 public ActionBar enableCustomCenterTitle(Context context, boolean isShowBack, boolean isWhite) {
    ActionBar actionBar = enableCustomTitle();

    View actionbarLayout = LayoutInflater.from(context).inflate(
            R.layout.actionbar_layout, (ViewGroup) actionBar.getCustomView(),false);
    if (isWhite) {
        actionbarLayout = LayoutInflater.from(context).inflate(
                R.layout.actionbar_layout_white, (ViewGroup) actionBar.getCustomView(),false);
        TextView back = (TextView) actionbarLayout.findViewById(R.id.action_bar_back);
        back.setTextColor(getResources().getColor(R.color.orange));
        mTintManager.setStatusBarTintColor(getResources().getColor(R.color.white));
        setStatusBarDarkMode(true, this);
    }
    ActionBar.LayoutParams params = new
            ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT,
            ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER);

    View backView = ButterKnife.findById(actionbarLayout, R.id.action_bar_back);
    if (isShowBack) {
        backView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onBackPressed();
            }
        });
        backView.setVisibility(View.VISIBLE);
    } else {
        backView.setVisibility(View.GONE);
    }
    actionBar.setCustomView(actionbarLayout, params);
    return actionBar;
}

答案 2 :(得分:0)

您可以使用setLogo设置resDrawableDrawable对象。至于ActionBar上的徽标大小,我相信它是32x32 dp;根据{{​​3}}

,光学方块,24x24 dp

要删除标题,只需使用actionBar.setTitle("")即可。这段代码看起来好像没有标题。

还有一点,您应该将ActionBar更改为this

答案 3 :(得分:0)

由于操作栏已弃用,最好是用户ToolBar,并可以在您的应用中使用material design concepts

按照以下说明: 1.在res文件夹中创建<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/grey" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/iv_Logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> </LinearLayout> </android.support.v7.widget.Toolbar>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:orientation="vertical">

<include
    android:id="@+id/toolbar"
    layout="@layout/toolbar" />
</LinearLayout>
  1. 打开主要活动(activity_main.xml)的布局文件并添加工具栏。

    MainActivity.java

  2. onCreate()中,在mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); 方法中添加工具栏小部件的引用:

    {{1}}