작업 표시 줄에서 오버플로 아이콘 변경


답변:


255

스타일을 사용할 수 있지만 기본 테마 선언에 추가해야합니다.

<resources>
    <!-- Base application theme. -->
    <style name="Your.Theme" parent="@android:style/Theme.Holo">
        <!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
        <item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
    </style>

    <!-- Styles -->
    <style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_action_overflow</item>
    </style>

</resources>

동적으로 변경할 수도 있습니다. 여기에 대해 자세히 설명합니다.

프로그래밍 방식으로 Android 오버플로 메뉴 아이콘 변경


1
나는 이미 소스 코드를 조사하는이 솔루션을 찾았지만 감사합니다 :) 좋은 대답입니다.
pjanecze 2012 년

6
이것은 STYLE이 아닌 테마에 적용된다는 점에 유의하십시오. 그것을 깨달을 때까지 잠시 머물렀다. 들으 @aneal
리처드 르 Mesurier

5
Android 3.0 (API 11)을 실행하는 태블릿에서는 "android : actionOverflowButtonStyle"(아마도 플랫폼 버그) 스타일을 정의하는 사람들을 좋아하지 않기 때문에 충돌이 발생합니다. 따라서 values-v11 / styles.xml 및 values-v15 / styles.xml에서 서로 다른 스타일을 사용해야합니다.
Mr-IDE

10
ActionBarSherlock 사용자의 경우 상위 스타일은 다음과 같습니다.parent="Widget.Sherlock.ActionButton.Overflow"
Nick White

7
appcompat (v21 lollipop 어쨌든)의 경우 parent="@style/Widget.AppCompat.ActionButton.Overflow"나를 위해 일하는 것 같습니다.
fattire 2010 년

16

작동하지 않는 사람들을 위해 "android :"네임 스페이스없이 이것을 시도하십시오.

<item name="actionOverflowButtonStyle">@style/OverFlow</item>

고마워요, 정말 도움이되었습니다. 누구든지 이것에 대한 설명이 있습니까?
DaMachk 2015

4
@DaMachk AppCompat를 사용하는 경우 "android :"네임 스페이스를 포함하지 마십시오.
matiash

4
  1. styles.xml에서 Actionbar의 사용자 정의 오버 플로우 아이콘을 변경하십시오.

     <resources>
        <!-- Base application theme. -->
        <style name=“MyTheme" parent="@android:style/Theme.Holo">
           <!-- Pointer to Overflow style DONT forget! -->
           <item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item>
        </style>
    
        <!-- Styles -->
        <style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
            <item name="android:src">@drawable/ic_your_action_overflow</item>
        </style>
     </resources>
  2. AndroidManifest.xml의 애플리케이션 태그에 사용자 정의 테마 "MyTheme"를 넣습니다.

    <application
        android:name="com.example.android.MainApp"
        android:theme="@style/AppTheme">
    </application>

즐기세요. @. @


4

에서 무엇을하려고하더라도 어떤 styles.xml솔루션도 효과가 없었습니다. 결국 AppCompat 23+가있는 경우 실제로 작동하는 가장 쉬운 방법입니다.

toolbar.setOverflowIcon(drawable);

내가 찾은 가장 정확한 방법!
Shubhamhackz

1

@adneal의 대답 은 정확합니다 (따라서 이것은 확장 할 커뮤니티 위키 설명 일뿐입니다).

댓글 중 하나는이를 수행하는 방법에 대해 오해가있을 수 있다고 제안했기 때문에 제 대답은 오버플로 아이콘 이미지를 재정의하는 방법에 대한 또 다른 예일뿐입니다.

아래 코드는 ADT 샘플 New Android Project의 템플릿 스타일을 기반으로합니다. 코드는 폴더 의 styles.xml파일에서 가져 옵니다 res/values.


<style name="AppBaseTheme" parent="android:Theme.Light">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.

    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">

    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>

<style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_menu_moreoverflow</item>
</style>

위의 코드가하는 일은 기본 오버플로 아이콘을라는 이름의 드로어 블로 대체하는 것입니다 ic_menu_moreoverflow. 빠르게 테스트하고 싶다면 앱의 런처 아이콘 파일 이름을 사용하면 작동 방식이 명확 해집니다.

ActionBar스타일 을 이해하려고 할 때 유용한 리소스 는 다음과 같습니다.

여기에서 오버플로 아이콘에 사용할 특정 색상을 정의 할 수 있으며 ZIP 파일에 올바른 styles.xml파일 이 포함됩니다 .


1

오버플로 아이콘 색상 변경의 경우

toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));

또는

toolbar.setOverflowicon(getDrawable(R.id.redIcon));

아이콘을 변경하고 원하는 색상을 선택하고 오버플로 아이콘으로 설정합니다.


0

긴 검색 후 내가 따라야 할 지침을 얻었습니다.

  1. 선언문 파일에서 테마를 확인하십시오.
  2. 그런 다음 res-> values-> themes로 이동하십시오.
  3. 이 파일에서 테마 이름을 찾으십시오.
  4. theme.xml의 테마 내에 항목을 추가하십시오.

    <item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
  5. theme.xml을 의미하는 동일한 파일의 스타일에 아이콘을 추가하십시오.

    <style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/icon_menu</item>
    </style>
  6. 변경하려는 사용자 정의 아이콘을 확인하십시오.

그것은 나를 위해 일했습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.