Android自定义ActionBar背景颜色(从源码分析)
2015-12-11 10:08
621 查看
Android自定义ActionBar背景颜色
修改前后效果图:
在style.xml里加一行代码搞定
这里已经出现“colorPrimary"了
找到”actionBarStyle“
终于找到了
最后看定义注释,By default,the color applied to the action bar background,似乎明白了什么。
修改前后效果图:
在style.xml里加一行代码搞定
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/green</item> </style>那为什么是"colorPrimary"呢,一层一层找
<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />
这里已经出现“colorPrimary"了
<style name="Base.Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light"> <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item> <item name="actionBarWidgetTheme">@null</item> <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item> <!-- Panel attributes --> <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item> <item name="colorPrimaryDark">@color/primary_dark_material_dark</item> <item name="colorPrimary">@color/primary_material_dark</item> </style>
<style name="Base.Theme.AppCompat.Light" parent="Base.V7.Theme.AppCompat.Light"></style>
找到”actionBarStyle“
<style name="Base.V7.Theme.AppCompat.Light" parent="Platform.AppCompat.Light"> <item name="windowActionBar">true</item> <item name="windowActionBarOverlay">false</item> <!-- Used by MediaRouter --> <item name="isLightTheme">true</item> <item name="selectableItemBackground">@drawable/abc_item_background_holo_light</item> <item name="selectableItemBackgroundBorderless">?attr/selectableItemBackground</item> <item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item> <item name="dividerVertical">@drawable/abc_list_divider_mtrl_alpha</item> <item name="dividerHorizontal">@drawable/abc_list_divider_mtrl_alpha</item> <!-- Action Bar Styles --> <item name="actionBarTabStyle">@style/Widget.AppCompat.Light.ActionBar.TabView</item> <item name="actionBarTabBarStyle">@style/Widget.AppCompat.Light.ActionBar.TabBar</item> <item name="actionBarTabTextStyle">@style/Widget.AppCompat.Light.ActionBar.TabText</item> <item name="actionButtonStyle">@style/Widget.AppCompat.Light.ActionButton</item> <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.Light.ActionButton.Overflow</item> <item name="actionOverflowMenuStyle">@style/Widget.AppCompat.Light.PopupMenu.Overflow</item> <item name="actionBarStyle">@style/Widget.AppCompat.Light.ActionBar.Solid</item></span> <item name="actionBarSplitStyle">?attr/actionBarStyle</item> <item name="actionBarWidgetTheme">@null</item> <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.ActionBar</item> <item name="actionBarSize">@dimen/abc_action_bar_default_height_material</item> <item name="actionBarDivider">?attr/dividerVertical</item> <item name="actionBarItemBackground">?attr/selectableItemBackgroundBorderless</item> <item name="actionMenuTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Menu</item> <item name="actionMenuTextColor">?android:attr/textColorPrimaryDisableOnly</item> <!-- Action Mode --> <item name="actionModeStyle">@style/Widget.AppCompat.ActionMode</item> <item name="actionModeBackground">@drawable/abc_cab_background_top_material</item> <item name="actionModeSplitBackground">?attr/colorPrimaryDark</item> <item name="actionModeCloseDrawable">@drawable/abc_ic_ab_back_mtrl_am_alpha</item> <item name="actionModeCloseButtonStyle">@style/Widget.AppCompat.ActionButton.CloseMode</item> <item name="actionModeCutDrawable">@drawable/abc_ic_menu_cut_mtrl_alpha</item> <item name="actionModeCopyDrawable">@drawable/abc_ic_menu_copy_mtrl_am_alpha</item> <item name="actionModePasteDrawable">@drawable/abc_ic_menu_paste_mtrl_am_alpha</item> <item name="actionModeSelectAllDrawable">@drawable/abc_ic_menu_selectall_mtrl_alpha</item> <item name="actionModeShareDrawable">@drawable/abc_ic_menu_share_mtrl_alpha</item> <!-- Dropdown Spinner Attributes --> <item name="actionDropDownStyle">@style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar</item> <!-- Panel attributes --> <item name="panelMenuListWidth">@dimen/abc_panel_menu_list_width</item> <item name="panelMenuListTheme">@style/Theme.AppCompat.CompactMenu</item> <item name="panelBackground">@drawable/abc_menu_hardkey_panel_mtrl_mult</item> <item name="android:panelBackground">@android:color/transparent</item> <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_light</item> <!-- List attributes --> <item name="textAppearanceListItem">@style/TextAppearance.AppCompat.Subhead</item> <item name="textAppearanceListItemSmall">@style/TextAppearance.AppCompat.Subhead</item> <item name="listPreferredItemHeight">64dp</item> <item name="listPreferredItemHeightSmall">48dp</item> <item name="listPreferredItemHeightLarge">80dp</item> <item name="listPreferredItemPaddingLeft">16dip</item> <item name="listPreferredItemPaddingRight">16dip</item> <!-- Required for use of support_simple_spinner_dropdown_item.xml --> <item name="spinnerDropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item> <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item> <!-- Popup Menu styles --> <item name="popupMenuStyle">@style/Widget.AppCompat.Light.PopupMenu</item> <item name="textAppearanceLargePopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large</item> <item name="textAppearanceSmallPopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small</item> <item name="listPopupWindowStyle">@style/Widget.AppCompat.ListPopupWindow</item> <item name="dropDownListViewStyle">@style/Widget.AppCompat.ListView.DropDown</item> <!-- SearchView attributes --> <item name="searchViewStyle">@style/Widget.AppCompat.Light.SearchView</item> <item name="android:dropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item> <item name="textColorSearchUrl">@color/abc_search_url_text</item> <item name="textAppearanceSearchResultTitle">@style/TextAppearance.AppCompat.SearchResult.Title</item> <item name="textAppearanceSearchResultSubtitle">@style/TextAppearance.AppCompat.SearchResult.Subtitle</item> <!-- ShareActionProvider attributes --> <item name="activityChooserViewStyle">@style/Widget.AppCompat.Light.ActivityChooserView</item> <!-- Toolbar styles --> <item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item> <item name="toolbarNavigationButtonStyle">@style/Widget.AppCompat.Toolbar.Button.Navigation</item> <item name="android:editTextStyle">@style/Widget.AppCompat.EditText</item> <item name="editTextBackground">@drawable/abc_edit_text_material</item> <item name="editTextColor">?android:attr/textColorPrimary</item> <!-- Color palette --> <item name="colorPrimaryDark">@color/primary_dark_material_light</item> <item name="colorPrimary">@color/primary_material_light</item> <item name="colorAccent">@color/accent_material_light</item> <item name="colorControlNormal">?android:attr/textColorSecondary</item> <item name="colorControlActivated">?attr/colorAccent</item> <item name="colorControlHighlight">@color/ripple_material_light</item> <item name="colorSwitchThumbNormal">@color/switch_thumb_normal_material_light</item> <item name="drawerArrowStyle">@style/Widget.AppCompat.DrawerArrowToggle</item> <item name="switchStyle">@style/Widget.AppCompat.CompoundButton.Switch</item> </style>
<style name="Widget.AppCompat.Light.ActionBar.Solid" parent="Base.Widget.AppCompat.Light.ActionBar.Solid"></style>
终于找到了
<style name="Base.Widget.AppCompat.Light.ActionBar.Solid"> <item name="background">?attr/colorPrimary</item></span> <item name="backgroundStacked">?attr/colorPrimary</item> <item name="backgroundSplit">?attr/colorPrimary</item> </style>
最后看定义注释,By default,the color applied to the action bar background,似乎明白了什么。
<!-- The primary branding color for the app. By default, this is the color applied to the action bar background. --> <attr name="colorPrimary" format="color" />
相关文章推荐
- Android ClearEditText:输入用户名、密码错误时整体删除及输入为空时候晃动提示
- android手机屏幕分辨率获取异常
- android glide 图片加载框架使用
- Android数据存储——2.文件存储_F_解析JSON文档
- Android Handler 小结
- Android ListView优化之提高android应用效率
- 为什么android你用的越多,速度较慢的手机
- Android Intent的使用
- Android实现从网络获取图片显示并保存到SD卡的方法
- android开发过程中的坑点(一)
- Android 的通用权限
- Android ListView详解
- Android国外学习资源汇总
- Space+onTouchEvent=Hitarea:像Flash那样在Android中扩大点击区域
- 仿哔哩哔哩应用客户端Android版源码
- Android开发-DrawerLayout实现侧滑菜单(1)
- Android之日期和时间对话框DatePickerDialog和TimePickerDialog
- android studio 中SVN中 的使用(翻译)
- Android 图文教学让你彻底理解activity启动模式
- android-java与C++的相互调用