2013-12-12 57 views
0

请参阅我创建了menu.xml文件文件下,这是我一直在水库>菜单 - >文件夹无法显示在Android应用程序菜单图标

<item android:id="@+id/menu_About" 
     android:icon="@drawable/icon_about" 
     android:title="@string/About" /> 

<item android:id="@+id/menu_Settings" 
     android:icon="@drawable/icon_settings" 
     android:title="@string/Settings" /> 

<item android:id="@+id/menu_Exit" 
     android:icon="@drawable/icon_exit" 
     android:title="@string/Exit" /> 

我有在res-> drawable-hdpi,drawable-ldpi,drawable-mdpi,drawable-xhdpi,drawable-xxhdpi文件夹下保留了icon_about.png,icon_settings.png,icon_exit.png文件,但是当我的应用程序运行时,这些图标不显示向上。请告诉我,如果我错过了什么。

谢谢

回答

0

检查您是否使用了正确尺寸的图标。对于选项菜单中选择所需尺寸

ldpi 32 x 32 px 
mdpi: 36 x 36 px 
hdpi: 48 x 48 px 
xhdpi: 64 x 64 px 
+0

是的,这与ShowAsAction一起也需要。谢谢 – Ravneet

1

尝试在活动使用:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    Inflate the menu; // this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu);  
    return true;  
} 
+0

这是问题,它应该在评论 –

+0

@Williams:这不是一个问题,而是解决方案的建议。所以,这对我来说很好。 – lpapp

+0

IMO,它应该在评论 –

0

我遵守了icon_about.png,icon_settings.png,icon_exit.png下水库 文件 - > drawable-hdpi,drawable-ldpi,drawable-mdpi, drawable-xhdpi,drawable-xxhdpi文件夹但是当我的应用程序运行时,这些图标不会显示出来。请告诉我,如果我错过了什么。

=>您没有在所有菜单项中包含android:showAsAction属性。

+1

这是missing.Thanks我的图标现在显示出来。 – Ravneet

+0

@ user3060037如果这有助于你按照SO规则,你应该接受/ upvote答案。干杯! –

0

打开您的主要Activity类文件并键入以下代码。在下面的代码中,每个菜单项在switch case语句中都由它的ID标识。

public class MenusActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    // Initiating Menu XML file (menu.xml) 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.layout.menu, menu); 
     return true; 
    } 

    /** 
    * Event Handling for Individual menu item selected 
    * Identify single menu item by it's id 
    * */ 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 

     switch (item.getItemId()) 
     { 
     case R.id.menu_About: 

      Toast.makeText(MenusActivity.this, "about is Selected", Toast.LENGTH_SHORT).show(); 
      return true; 

     case R.id.menu_settings: 
      Toast.makeText(MenusActivity.this, "settings is Selected", Toast.LENGTH_SHORT).show(); 
      return true; 


     case R.id.menu_Exit: 
      Toast.makeText(MenusActivity.this, "Exit is Selected", Toast.LENGTH_SHORT).show(); 
      return true; 



     default: 
      return super.onOptionsItemSelected(item); 
     } 
    }  

} 

。最后通过右键点击你的项目来运行你的项目。在Android模拟器上点击菜单按钮来启动菜单。

+1

我已经有这个代码写在MainActivity类中。菜单选项正常工作,因为当我选择关于菜单选项时,会显示一条消息“about is selected”。这是我没有出现的图标。 – Ravneet

0
<item 
    android:id="@+id/web_link" 
    android:icon="@drawable/menu_About" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:title="Web link"/> 

如果你想要总是......其他选项,你必须添加android:showAsAction =“always”。像“永不”,如果你希望它们可以以编程方式添加,则永远不会显示图标;如果有其他地方,则会出现其他“ifroom”菜单项将出现

+0

谢谢。该解决方案为我工作。 – Ravneet

相关问题