如何在android上使用setIcon函数

时间:2015-10-06 10:42:50

标签: android menu icons

大家好我试图在menuItem中设置一个Icon。我阅读了Android开发者博客,并说:

public abstract MenuItem setIcon (int iconRes)    

更改与此项目关联的图标。此图标不会始终显示,因此标题应足以描述此项目。有关支持图标的菜单类型,请参阅菜单。

此方法将设置图标的资源ID,当显示此项目时,该图标将用于懒惰地获取Drawable。

参数:iconRes要显示的新图标(作为资源ID)。

返回:此项目可以调用其他setter。

我应该把参数作为一个int。特别是我的图标的ID。但我无法弄清楚我必须在哪里找到这个ID。我只是将名为“badIcon.ico”的图标放在drawable文件夹中。我现在应该继续吗? 谢谢你们

2 个答案:

答案 0 :(得分:1)

这很简单...... 请参阅本教程.. here

创建 menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:id="@+id/next"
              android:icon="@drawable/ic_next"
              android:title="@string/next" />
      <item android:id="@+id/previous"
            android:icon="@drawable/ic_previous"
            android:title="@string/previous" />
      <item android:id="@+id/list"
            android:icon="@drawable/ic_list"
            android:title="@string/list" /> 
</menu>

现在您可以在菜单上设置ICON

现在位于 CreateOptionMenu

public boolean onCreateOptionsMenu(Menu menu) {
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.menu, menu);
      return true;
    }

要获得该菜单..

public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
      case R.id.next:
            Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option",
                        Toast.LENGTH_SHORT).show();
            return true;
      …
      default:
            return super.onOptionsItemSelected(item);
      }

答案 1 :(得分:0)

如果您想以静态方式向菜单项添加图标,可以编写

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/yourId"
  android:icon="@drawable/badIcon"
  android:title="@string/yourTitle" /> 
</menu>

您可以像这样以编程方式添加图标

menu.add(0, MENU_TITLE, 0, "title").setIcon(R.drawable.badIcon);