如何使用imageview更改溢出菜单图标

时间:2017-10-27 05:24:48

标签: android android-actionbar android-toolbar android-menu

我有一个带有菜单项溢出菜单图标的工具栏。我需要将溢出图标更改为圆形图像视图。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/white"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/profile_image"
        android:layout_width="38dp"
        android:layout_height="30dp"
        android:layout_gravity="right|end"
        app:srcCompat="@android:drawable/sym_def_app_icon"/>

</android.support.v7.widget.Toolbar>

代码看起来像。

   Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar);
   CircleImageView mciv = (CircleImageView) findViewById(R.id.profile_image);
   setSupportActionBar(toolbarTop);

我试图更改溢出图标,但大多数SO提到使用drawable。但我需要使用imageview。我试过下面的

@Override
public boolean onOptionsItemSelected(MenuItem item) {
       item.setActionView(mciv);
       return super.onOptionsItemSelected(item);
}

但它不起作用。如何使用imageview更改溢出菜单图标?

1 个答案:

答案 0 :(得分:0)

您可以设置imageview的点击事件,然后点击打开菜单。

imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        openOptionsMenu();
    }
});

或者您可以手动创建弹出菜单here is the example for popup menu