2012-01-18 4 views
16

Android 개발에 관한 책을 읽고 나에게 처음으로 실제 앱을 쓰기 시작했습니다. 필자는 필자의 활동 중 하나에 대해 옵션 메뉴를 만들고 있습니다. 메뉴가 나타나지만 해당 메뉴 항목의 아이콘이 표시되지 않습니다. 여기 메뉴에 대한 코드입니다 :Android 옵션 메뉴 아이콘이 표시되지 않습니다.

ReminderListActivity

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     MenuInflater mi = getMenuInflater(); 
     mi.inflate(R.menu.list_menu, menu); 
     return true; 
    } 

고해상도 나는 ic_menu_add.png 아이콘 (32x32px)를 복사 한

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

</menu> 

/메뉴/list_menu.xml 내 Android SDK 하위 폴더 중 하나에서 내 res/drawable-mdpi 폴더로 이동 한 다음 파일 이름을 menu_add.png로 변경했습니다. 이클립스 내에서 폴더를 새로 고침하여 아이콘이 나타나게하고, 알 수 있듯이이를 레이아웃 파일의 메뉴 항목에 대한 아이콘으로 설정합니다. 에뮬레이터에서 프로젝트를 몇 번 실행하려고 시도했지만 아이콘이 나타나지 않습니다. 기록을 위해, 나는 안드로이드 4.0.3을 사용하고있다.

어떤 아이디어라도?

+0

당신이 밀도 적은 폴더에 아이콘을 넣어 시도 할 수 API에 나를 위해 노력하고 있습니다? 나는 그것이 당신의 코드와 관련이 없다고 생각한다. Eclipse에서 결함 일 수 있습니다. – iTurki

+0

밀도가없는 폴더 란 정확히 무엇을 의미합니까? ldpi, mdpi 및 hdpi 드로어 블 폴더 만 존재합니까? 모든 폴더에 아이콘을 넣으려고했으나 해결되지 않았습니다. – Jort

+1

폴더를 추가하고 이름을 '드로어 블'로 지정한 다음 아이콘을 그 위에 붙입니다. 작동하지 않으면 각 폴더의 아이콘을 복제하십시오. 테스트하기 전에 프로젝트를 새로 고치고 정리하는 것을 잊지 마십시오. – iTurki

답변

28

Android 3.0 이상에서는 옵션 메뉴 (작업 표시 줄의 스필 오버 (spillover) 메뉴)에 대한 기본 접근 방식이 아이콘을 표시하지 않습니다. android:targetSdkVersion="11" 이상인 경우 아이콘이 Android 3.0 이상의 메뉴에 나타나지 않습니다. 옵션 메뉴 항목을 툴바 버튼으로 승격하면 아이콘이 표시되고 아이콘은 Android 1.x/2.x 기기에 표시됩니다.

+0

답장을 보내 주셔서 감사합니다. 안드로이드 설정 자체와 관련이 있다고 생각했습니다. 옵션 메뉴 항목을 도구 모음 단추로 바꾸거나 전체 옵션 메뉴를 도구 모음으로 변환해야합니까? – Jort

+0

@Jort : 주로 아이콘 걱정을 멈춰야합니다. 당신은'android : showAsAction'을 사용하여 옵션 메뉴 아이템을 툴바 버튼처럼 액션 바 안으로 옮길 수 있습니다. – CommonsWare

+0

설명해 주셔서 감사합니다. 필자가 atm을 따르는 책은 안드로이드 2.2 용 앱 작성에 중점을두고 있습니다. 그래서 내 아이콘을 표시하려고 애를 썼습니다. 아직 액션 바를 사용하지는 않았지만 이제 Android의 새로운 버전에서 UI가 어떻게 바뀌 었는지 이해합니다. 유용한 조언을 주셔서 다시 한번 감사드립니다. – Jort

0

RelativeLayout으로 레이아웃을 만들었으며 사용자가 메뉴를 선택하면 레이아웃이 표시됩니다.

5

이 완벽하게 23

<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=".MainActivity"> 
<item 
    android:icon="@drawable/ic_menu" 
    android:orderInCategory="100" 
    android:title="Option Menu" 
    app:showAsAction="always"> 
    <menu> 
     <item 
      android:id="@+id/action_myorder" 
      android:icon="@drawable/ic_order" 
      android:title="My Order" /> 
     <item 
      android:id="@+id/action_myaccount" 
      android:icon="@drawable/ic_account" 
      android:title="My Account" /> 
     <item 
      android:id="@+id/action_share" 
      android:icon="@drawable/ic_share" 
      android:title="Share" /> 
     <item 
      android:id="@+id/action_term_condition" 
      android:icon="@drawable/ic_terms" 
      android:title="Term and Conditions" /> 
     <item 
      android:id="@+id/action_logout" 
      android:icon="@drawable/ic_logout" 
      android:title="Logout" /> 
    </menu> 
</item> 

+0

위대한 분! 그냥 android의 사용법을 알고 싶다면 : orderInCategory = "100" – Abhijit

+0

카테고리의 값이 0이면 오버 플로우 메뉴가 조각에 나타나면 조각보다 강하다. –