public class MainActivity extends Activity {
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getActionBar().setIcon(R.drawable.ic_launcher);
getActionBar().setTitle("Sample Menu");
getActionBar().setBackgroundDrawable(new
ColorDrawable(Color.parseColor("#33B5E5")));
int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
TextView titleText = (TextView)findViewById(titleId);
titleText.setTextColor(Color.parseColor("#ffffff"));
}
@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);
setMenuBackground();
return true;
}
protected void setMenuBackground(){
// Log.d(TAG, "Enterting setMenuBackGround");
getLayoutInflater().setFactory( new Factory() {
@Override
public View onCreateView(String name, Context context,
AttributeSet attrs) {
if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {
try { // Ask our inflater to create the view
LayoutInflater f = getLayoutInflater();
final View view = f.createView( name, null, attrs );
/* The background gets refreshed each time a new item is added the options menu.
* So each time Android applies the default background we need to set our own
* background. This is done using a thread giving the background change as runnable
* object */
new Handler().post( new Runnable() {
public void run () {
// sets the background color
view.setBackgroundResource( R.color.menubg);
// sets the text color
((TextView) view).setTextColor(Color.WHITE);
// sets the text size
((TextView) view).setTextSize(18);
}
} );
return view;
}
catch ( InflateException e ) {}
catch ( ClassNotFoundException e ) {}
}
return null;
}});
}
}
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:icon="@drawable/menu"
android:showAsAction="always"
android:title="@string/action_settings">
<menu>
<item
android:id="@+id/item1"
android:showAsAction="always"
android:title="@string/item1" />
<item
android:id="@+id/item2"
android:showAsAction="always"
android:title="@string/item2" />
<item
android:id="@+id/item3"
android:showAsAction="always"
android:title="@string/item3" />
<item
android:id="@+id/item4"
android:showAsAction="always"
android:title="@string/item4" />
</menu>
</item>
</menu>
<color name="menubg">#33B5E5</color>
img src = " http://i.stack.imgur.com/xFlzp.png" <;; width = " 240"; alt = " 메뉴 Sample" >;;
위 사진, I want to change from black 을 메뉴 배경에 파란색 에서 작업 표시줄 . 왜 내가 한 일, 이를 어떻게 해야 합니까?
이 작업 표시줄 스타일을 발생기입니다 , 제안한 써니, 매우 유용한 있지만, 이는 대부분 파일 , 많이유 생성하는지 관계가 없는 경우에만 변경하십시오 란색이며 하는 배경.
그래서 더 깊게 파고 있는 부품 며칠입니까 좁히기 위해 it 를 zip 생성하는지 했고, 그래서 나는 내 일에 대한 최소한의 어플리케이션 다음은 내가 내말들어봐 변경되는지 밝혀냈다.
, 스타일로 발생기입니다 관련 설정은 팝업 메뉴 , , 하위 회전자 패널 및 색상 영향을 주는 " 오버플로입니다 background".
하지만 모든 생성된 파일은 zip 아웃해야 그럽세 작성하고, 정말 필요한 경우에만 ', ' 한 이미지를 menu_dropdown_panel_example.9.png 디스크입니다. 구성은 다음과 같습니다.
따라서 다른 버전의 迈向 '추가 해결안에서는 res/drawable-*'. (그리고 아마도 변경하십시오 '를' menu_dropdown_panel.9.png.)
그 후, 예를 들어, '다음' 에서 ',' 를 안드로이드 팝업멘스일 res/values/themes.xml 했습니다 '및' 기술입니까 안드로이드 팝업백그로런드 주요 꾸미기야.
<resources>
<style name="MyAppActionBarTheme" parent="android:Theme.Holo.Light">
<item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item>
<item name="android:actionBarStyle">@style/MyApp.ActionBar</item>
</style>
<!-- The beef: background color for Action Bar overflow menu -->
<style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
</style>
<!-- Bonus: if you want to style whole Action Bar, not just the menu -->
<style name="MyApp.ActionBar" parent="android:Widget.Holo.Light.ActionBar.Solid">
<!-- Blue background color & black bottom border -->
<item name="android:background">@drawable/blue_action_bar_background</item>
</style>
</resources>
물론, '안드로이드마니페스트리스메르 에서':
<application
android:theme="@style/MyAppActionBarTheme"
... >
What you get 대체하십시오 설정:
단, m # 39 를 기본 테마 '' 드미트로트라이트 I& 사용하여. '드미트로 사용하는 경우' (홀로 어두움), there& # 39 에 추가로 필요하게 단계 이 질문에 대해!
또한, if you (나처럼) 하고 싶은 메뉴, 작업 표시줄 스타일을 '에서 이 같은 일이 아니라 전체 동일팔레트에 res/drawable/blue_action_bar_background.xml':
<!-- Bonus: if you want to style whole Action Bar, not just the menu -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<stroke android:width="2dp" android:color="#FF000000" />
<solid android:color="#FF2070B0" />
</shape>
</item>
<item android:bottom="2dp">
<shape android:shape="rectangle">
<stroke android:width="2dp" android:color="#FF2070B0" />
<solid android:color="#00000000" />
<padding android:bottom="2dp" />
</shape>
</item>
</layer-list>
적어도 켜짐이 안드로이드 4.0+ 멋지구리해요 작동됨 (apiu 수준 14+).
여기에 대한 작업 솔루션의 경우 방문하는 사람들은 여전히 대한 어떤 방법이 주효했는가 나를 - 이 캐비닛용입니다 아프콤파트 지원 라이브러리. 이는 연속 마티오노바 스타일을 위해 설명했다 여기서요
다음은 스테일스.1믈 절실해졌습니다.
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- This is the styling for action bar -->
<item name="actionBarStyle">@style/MyActionBar</item>
<!--To change the text styling of options menu items</item>-->
<item name="android:itemTextAppearance">@style/MyActionBar.MenuTextStyle</item>
<!--To change the background of options menu-->
<item name="android:itemBackground">@color/skyBlue</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
<style name="MyActionBar.MenuTextStyle"
parent="style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/red</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">25sp</item>
</style>
</resources>
this is how it 는 핑크 색상은 하늘색 및 텍스트 및 menuitem 보입니다. 배경색에 menuitem 티스트시즈 25sp 함께 있다.
이 경우, 읽기, s, t # 39 it& # 39 이전의 모든 답을 작동합니까 단축시킵니다 didn& 때문일 것이다 홀로 어두운 기반 테마.
홀로 추가로 어두운 /dev/raw/raw1 위한 래퍼 (팝업 메뉴 도왔으매 수행한 후 [어떤 조니크 제안됩니다] (https://stackoverflow.com/a/20077381/3394414) # 39, & # 39 xml& 데이터베이스에구성원을 다음 스타일을 추가해야 합니다. 파일:
<style name="PopupWrapper" parent="@android:style/Theme.Holo">
<item name="android:popupMenuStyle">@style/YourPopupMenu</item>
</style>
그 후 참조입니다 테마를 요소:
<style name="Your.cool.Theme" parent="@android:style/Theme.Holo">
.
.
.
<item name="android:actionBarWidgetTheme">@style/PopupWrapper</item>
</style>
내 간단한 트릭 변경하시려면 배경색에 색깔등을 팝업 메뉴 / 옵션 메뉴를 텍스트에서
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo">
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:itemTextAppearance">@style/TextAppearance</item>
</style>
<!-- Popup Menu Background Color styles -->
<style name="MyPopupMenu"
parent="@android:style/Widget.Holo.ListPopupWindow">
<item name="android:popupBackground">@color/Your_color_for_background</item>
</style>
<!-- Popup Menu Text Color styles -->
<style name="TextAppearance">
<item name="android:textColor">@color/Your_color_for_text</item>
</style>
여기 있는 경우에 그 중 가장 최신 안드로이드 스튜디오 작업 중인 도구막대 솔루션이므로 이 색상, 옵션 메뉴가 추가 변경하십시오 도구막대 데이터베이스에구성원을 도구막대 요소점
app:popupTheme="@style/MyDarkToolbarStyle"
그럼 내 스타일 스테일스.1믈 정의하십시오 팝업 메뉴
'스타일 이름 = " MyDarkToolbarStyle" <;; 모피쳐 = " ThemeOverlay.AppCompat.Light" >;; ,,, /item> @color/mtrl_white_100< > android:colorBackground" " < 항목설명프로세서 name = ,,, /item> @color/mtrl_light_blue_900< > android:textColor" " < 항목설명프로세서 name = '/style> <;
배경 없는 콜로백그로런드 사용할 수 있어야 합니다. 후자는 적용할 모든 것 (메뉴 자체 및 각 메뉴 항목을) 전 적용되며 팝업 메뉴.
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:textColorPrimary">@color/colorAccent</item>
<item name="android:colorBackground">@color/colorAppWhite</item>
</style>
빨리!
styles.xml
<style name="popupTheme" parent="Theme.AppCompat.Light">
<item name="android:background">@color/colorBackground</item>
<item name="android:textColor">@color/colorItem</item>
</style>
이 특정 시켜버리므로 추가하고 데이터베이스에구성원을 아프스메 스타일
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="popupTheme">@style/popupTheme</item>
</style>
완료!
Menuitem 스타일과 테마 아래 따라 오버플로입니다 에 적용할 수 있습니다. 그래서 우리는 오버플로입니다 메뉴는 목록보기 테마 목록보기 따라 적용할 수 있습니다.
아래 코드를 스테일스.1믈 적용하십시오
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:dropDownListViewStyle">@style/PopupMenuListView</item>
<item name="android:actionBarWidgetTheme">@style/PopupMenuTextView</item>
<item name="android:popupMenuStyle">@style/PopupMenu</item>
<item name="android:listPreferredItemHeightSmall">40dp</item>
</style>
<!-- Change Overflow Menu ListView Divider Property -->
<style name="PopupMenuListView" parent="@android:style/Widget.Holo.ListView.DropDown">
<item name="android:divider">@color/app_navigation_divider</item>
<item name="android:dividerHeight">1sp</item>
<item name="android:listSelector">@drawable/list_selector</item>
</style>
<!-- Change Overflow Menu ListView Text Size and Text Size -->
<style name="PopupMenuTextView" parent="@android:style/Widget.Holo.Light.TextView">
<item name="android:textColor">@color/app_white</item>
<item name="android:textStyle">normal</item>
<item name="android:textSize">18sp</item>
<item name="android:drawablePadding">25dp</item>
<item name="android:drawableRight">@drawable/navigation_arrow_selector</item>
</style>
<!-- Change Overflow Menu Background -->
<style name="PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@drawable/menu_overflow_bg</item>
</style>
난 그냥 hex 값을 변경할 수 있는 컬러 작업을 통해 오버플로입니다 http://www1.itrc. 검토하고 있다.
<!-- The beef: background color for Action Bar overflow menu -->
<style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">HEX VALUE OF COLOR</item>
</style>
앱 내의 색상 변경 작업 메뉴에서 테마 안드로이드 아템백그로런드 속성을 설정할 수 있습니다.
예를 들면 다음과 같습니다.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
<style name="AppThemeDark" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/drk_colorPrimary</item>
<item name="colorPrimaryDark">@color/drk_colorPrimaryDark</item>
<item name="colorAccent">@color/drk_colorAccent</item>
<item name="actionBarStyle">@style/NoTitle</item>
<item name="windowNoTitle">true</item>
<item name="android:textColor">@color/white</item>
<!-- THIS IS WHERE YOU CHANGE THE COLOR -->
<item name="android:itemBackground">@color/drk_colorPrimary</item>
</style>
끝 - < 스니핏 >;!
다음과 같은 추가 스테일스.1믈 데이터베이스에구성원을 ''
<style name="Custom_Theme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:itemBackground">@color/white</item>
<item name="android:textColor">@color/colorPrimaryDark</item>
</style>
테마 변경 '에서' activity_main.xml 뿐입니다.
android:theme="@style/Custom_Theme"
이 코드를 시도하시겠습니까. 이 스니핏을 추가 데이터베이스에구성원을 res> 스테일스.1믈 values>;
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:actionBarWidgetTheme">@style/Theme.stylingactionbar.widget</item>
</style>
<style name="PopupMenu" parent="@android:style/Widget.Holo.ListPopupWindow">
<item name="android:popupBackground">@color/DarkSlateBlue</item>
<!-- for @color you have to create a color.xml in res > values -->
</style>
<style name="Theme.stylingactionbar.widget" parent="@android:style/Theme.Holo">
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
그리고 아래 추가 마니페스트리스메르 스니핏 go-dell 애플리케이션
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<style name="customTheme" parent="any_parent_theme">
<item name="android:itemBackground">#424242</item>
<item name="android:itemTextAppearance">@style/TextAppearance</item>
</style>
<style name="TextAppearance">
<item name="android:textColor">#E9E2BF</item>
</style>
다음은 필요한 변경용 테마 변경 작업 표시줄 &. 오버플로입니다 메뉴 배경색에. Android:background", " 구성해야 합니다. 악타이온바스티리 & 있다. 팝업멘스일
<application
android:name="...."
android:theme="@style/AppLightTheme">
<style name="AppLightTheme" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBarLight</item>
<item name="android:popupMenuStyle">@style/ListPopupWindowLight</item>
</style>
<style name="ActionBarLight" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/white</item>
</style>
<style name="ListPopupWindowLight"parent="@android:style/Widget.Holo.Light.ListPopupWindow">
<item name="android:background">@color/white</item>
</style>