无法让ime_action_search.png显示在Action Bar中

时间:2014-05-12 04:03:31

标签: android android-layout

我正在使用Android tutorial,无法将搜索图标显示在我的操作栏中。

我不确定我错过了什么,但我很新,所以我不知道该往哪里看。

这是我的main_activity_actions.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  Search, should appear as action button -->
    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        android:showAsAction="always" />

    <!--  Settings, hsould awlays be in teh overflow -->
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:showAsAction="never" />
</menu>

这是在我的MainActivity.java文件中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

我已下载ic_action_search.png个文件并将它们放入以下各自的目录中:

/home/user/workspace/MyFirstApp/res/drawable-hdpi
/home/user/workspace/MyFirstApp/res/drawable-mdpi
/home/user/workspace/MyFirstApp/res/drawable-xhdpi
/home/user/workspace/MyFirstApp/res/drawable-xxhdpi

当我通过Eclipse运行应用程序时,我确实在logcat控制台中看到以下错误,但我不确定它们是否指的是png文件?

<snip>
05-11 21:51:17.823: I/Adreno200-EGLSUB(32725): <ConfigWindowMatch:2087>: Format RGBA_8888.
05-11 21:51:17.833: D/memalloc(32725): ion: Mapped buffer base:0x506af000 size:1949696 offset:0 fd:59
05-11 21:51:17.833: E/(32725): Can't open file for reading
05-11 21:51:17.833: E/(32725): Can't open file for reading
05-11 21:51:17.843: D/OpenGLRenderer(32725): Enabling debug mode 0
<snip>

我还可以在哪里查看以确定搜索图标不会出现在操作栏中的原因?

**编辑**

根据以下jay的建议,我已将main_activity_actions.xml更改为以下内容。这会将字符串值放入操作栏,但不会放入图标。 android知道自动查看图像文件夹吗?

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:yourapp="http://schemas.android.com/apk/res-auto">
    <!--  Search, should appear as action button -->
    <item android:id="@+id/action_search"
        yourapp:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        yourapp:showAsAction="always" />

    <!--  Settings, hsould awlays be in teh overflow -->
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:showAsAction="never" />
</menu>

3 个答案:

答案 0 :(得分:1)

如果您错过了xmlns:yourapp="http://schemas.android.com/apk/res-auto"此行到您的菜单,那么图片无法检查它。

答案 1 :(得分:0)

我也有这个问题,同时尝试按照教程。我尝试了所有显示的解决方案,包括添加

xmlns:yourapp="http://schemas.android.com/apk/res-auto"

没有任何效果。我的图标仍然不会显示在ActionBar中我最终注意到的是该教程有3个版本的styles.xml文件,而我的项目只有一个styles.xml。

其他样式是:res(values.xml)在res \ values-v11文件夹中:

<resources>

<!--
    Base application theme for API 11+. This theme completely replaces
    AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    <!-- API 11 theme customizations can go here. -->
</style>

这就是res \ values-v14文件夹:

<resources>

<!--
    Base application theme for API 14+. This theme completely replaces
    AppBaseTheme from BOTH res/values/styles.xml and
    res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- API 14 theme customizations can go here. -->
</style>

当我将这两个文件放在我的res文件夹中时,它有效。

答案 2 :(得分:0)

最好的办法是下载搜索图标或出于这个原因,谷歌开发者网站本身的任何图标并相应地进行修改。

https://www.google.com/design/icons/#ic_search

将图标图像保存在res / drawable文件夹中并刷新Android Studio。