2015-06-18 40 views
-1

我是Android开发人员中的新成员,我想为我的客户制作导航抽屉。Android ActionBar - 如何在中心对齐中添加徽标

如何将徽标添加到导航抽屉中的操作栏并删除标题。

我的代码:

活动

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> 

任何人都可以帮忙吗?

回答

0

ActionBar已弃用。使用ToolBar。 然后在您的工具栏对象将ImageView与徽标居中。 看看this

+0

哪里是图像部分?? – Jishad

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; 
} 
0

您可以使用setLogo设置resDrawableDrawable对象。至于ActionBar上的标志大小,我相信它是32x32dp;光学方形,24x24 dp根据this

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

还有一件事,你应该真的把ActionBar更改为ToolBar

0

由于操作栏不推荐使用,因此用户ToolBar更好,并且可以在您的应用中使用material design concepts

按照如下操作: 1.在您的res文件夹中创建toolbar.xml

<?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> 
  • 打开你的主要活性(activity_main.xml中)的布局文件,并添加工具栏。

    <?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> 
    

  • 在你MainActivity.java,在onCreate()方法添加工具栏插件的参考:

    mToolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(mToolbar); 
    
  • +0

    我正在使用导航抽屉,是否使用工具栏 – Jishad

    +0

    没有问题,它会正常工作。也要经过这个链接:http://www.androidhive。info/2015/04/android-getting-started-with-material-design /,它会解决你的问题。 –