如何使用Android设置图标创建Android菜单项

42

请问如何使用Android设置图标创建Android菜单项?


2
什么是“安卓设置图标”? - CommonsWare
我相信他指的是像这些一样的齿轮图标。 - RBT
4个回答

61

这里是标准图标列表。我没有看到“设置”图标,也许你的意思是“首选项” (ic_menu_preferences)?

你可以通过以下方式以编程方式设置图标:

menu.add(0, MENU_QUIT, 0, "Quit").setIcon(R.drawable.menu_quit_icon);

你也可以在你的xml布局中像这样设置它:

<item android:id="@+id/save_button"
      android:icon="@android:drawable/ic_menu_save"
      android:title="Save Image"/>

+1 谢谢,我正在寻找如何从XML引用drawable的方法。 - Benny Jobigan
代码xml在Material Design(2015)和Java中不能正常工作,该行是由其他形式创建的“getMenuInflater(),..” - user3402040
一定是漏了什么。不是材料设计的问题,我已经做了上面的操作,但是我看不到设置图标。在代码中在Android Studio中显示,但屏幕上没有出现! - Brian Reinhold
对我来说,引用私有图标时不需要 android 前缀,例如 android:icon="@drawable/abc_ic_menu_share_mtrl_alpha"。即使我没有将图像复制到我的项目中,它也可以正常工作。我想知道如何在没有 android 前缀的情况下引用 Android SDK 的图像,这是您在帖子中提到的。 - RBT

9
您可以在Android SDK文件夹中看到所有图标:
_your_install_path_\android-sdk\platforms\android-10\data\res\drawable-hdpi\

然后使用以下代码获取它们的引用:

android.R.drawable.ic_menu_preferences

就像它是你自己的可绘制对象一样。

值得一提的是:其中一些不是公开的,因此无法使用。 - Buffalo

7

添加新矢量资产。

  1. 文件-> 新建 -> 矢量资产。

enter image description here

  1. 单击图标以更改它。

enter image description here

  1. 选择您想要的图标(例如搜索“设定”)。

enter image description here

  1. Adjust other settings.

  2. Use that new Vector Asset in your xml.

    android:logo="@drawable/ic_settings_white_24dp"
    
  3. Party!

enter image description here


1
如果您想处理事件,请在您的活动上尝试这个方法。
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            // action with ID action_refresh was selected
            case android.R.drawable.ic_popup_sync:
                Toast.makeText(this, "ic_popup_sync selected", Toast.LENGTH_SHORT)
                        .show();
                break;
            default:
                break;
        }

        return true;
    }

在您的菜单文件夹中,请使用类似以下的内容:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.test.app.MainActivity"
    >

    <item android:id="@+id/action_settings1"
        android:icon="@drawable/abc_ic_search"
        android:title="Find Location"
        android:orderInCategory="100"
        app:showAsAction="ifRoom" />

    <item android:id="@+id/save_button"
        android:icon="@android:drawable/ic_menu_save"
        android:title="Save Image"/>

    <item android:id="@+id/refresh"
        android:icon="@android:drawable/ic_popup_sync"
        android:title="Refresh"/>


</menu>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接