使用v7库时更改ActionBarDrawer切换图标

时间:2015-09-09 18:54:21

标签: android navigation-drawer toolbar

我想使用自定义图像代替用于在android中切换导航抽屉的默认图标。我该怎么办呢? 这是我想要改变的图像。 enter image description here

5 个答案:

答案 0 :(得分:6)

使用以下代码设置自定义ActionBar切换按钮。

Context

答案 1 :(得分:3)

您可以使用style.xml进行更改

foreigner

答案 2 :(得分:0)

@Arya使用styles.xml给出了一个很好的例子:

<style name="BaseTheme" parent="Theme.AppCompat.NoActionBar">
  <item name="colorPrimary">@color/colorPrimary</item>
  <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  <item name="colorAccent">@color/colorAccent</item>
  <item name="homeAsUpIndicator">@drawable/menu</item>
  <item name="android:textColorPrimary">@android:color/white</item>
</style>

您也可以通过编程方式执行此操作:

public void setTitle(String title, int homeAsUpIndicator) {
  if (getSupportActionBar() != null) {
    getSupportActionBar().setTitle(title);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeAsUpIndicator(homeAsUpIndicator);
  }
}

然后在 onCreate()方法中,您可以使用向上指示符ican作为资源来调用setTitle方法。

注意:这是使用支持操作栏和新工具栏。

答案 3 :(得分:0)

要更改导航菜单的图标,您需要在ActionBarDrawerToggle对象中定义您的图像,如下所示:      mDrawerToggle = new ActionBarDrawerToggle(这个,                 mDrawerLayout,               你的IMAGE_SOURCE在这里,                 R.string.drawer_open,                 R.string.drawer_close)

如果您发现任何困难,那么您可以对其进行评论。

答案 4 :(得分:0)

我使用自定义操作栏并自行处理后退操作。我认为,这是最好的方式。 PFB xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:layout_margin="@dimen/outer_padding" >

    <ImageView
        android:id="@+id/btnBack"
        style="@style/back_button_style"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:src="@drawable/white_arrow" />

    <com.example.widgets.CustomTextView
        android:id="@+id/tvTitleImage"
        style="@style/actionbar_text_style"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/btnBack"
        android:padding="@dimen/outer_padding"
        android:text="@string/requests_text"
        custom:typefaceAsset="@string/berlin_bold" />

    <ImageView
        android:id="@+id/btnAdd"
        style="@style/back_button_style"
        android:layout_width="@dimen/actionbar_menu_icon_dim"
        android:layout_height="@dimen/actionbar_menu_icon_dim"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/ivSearch"
        android:src="@drawable/app_icon" />

    <ImageView
        android:id="@+id/ivSearch"
        style="@style/back_button_style"
        android:layout_width="@dimen/actionbar_menu_icon_dim"
        android:layout_height="@dimen/actionbar_menu_icon_dim"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/app_icon" />

</RelativeLayout>