android 中actionbar ,menu,Listview 风格自定义札记
来源:互联网 发布:腾讯云服务器开放端口 编辑:程序博客网 时间:2024/05/16 05:00
1:透明actionbar,透出背景沉浸式(沉浸式actionbar)
第一步:让内容区域扩张到actionbar
方法1:java代码实现在oncreate中:getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
方法2:style实现
使用对应activity的 在style中加入: <item name="android:windowActionBarOverlay">true</item>
第二步:悬浮actionbar
方法1:java 代码实现:ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00000000")));
//navigationbar背景色一致,需要添加一行代码:
actionBar.setSplitBackgroundDrawable(new ColorDrawable(Color.parseColor("#00000000")));
(注意:如果需要完全透明上面可能会失效可以使用下面这个方法:infinix_actionbar_bg这个图片需要透明色 getActionBar().setBackgroundDrawable(this.getBaseContext().getResources().getDrawable(R.drawable.infinix_actionbar_bg));)
方法2:使用theme 在style中实现:
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:windowActionBarOverlay">true</item>
<!-- 让actionbar悬浮 -->
<item name="android:actionBarStyle">@style/my_actionbar_style</item>
</style>
<style name="my_actionbar_style" parent="@android:style/Widget.Holo.Light.ActionBar">
<!-- 设置actionbar 背景色 透明 -->
<item name="android:background">#80000000</item>
<item name="android:backgroundStacked">#66666</item>
<item name="android:backgroundSplit">#80000000</item>
</style>
</resources>
2:修改actionbar 的title的字体颜色
<!-- 设置actionbar 背景色 透明 -->
<item name="android:background">#33000000</item>
<item name="android:backgroundStacked">#346c36</item>
<item name="android:backgroundSplit">#33000000</item>
<item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
</style>
<style name="MyActionBarTitleText">
<item name="android:textColor">@android:color/white</item>
</style>
另外的修改actionbar左边的返回箭头
/// M: add by hss for actionbar back UI @{
actionBar.setHomeAsUpIndicator(R.drawable.infinix_icon_back_click);
///:M--@}
或者使用该activity的style配置:
<style name="style_titlebar_normal" parent="Theme.AppCompat.Light">
<item name="android:homeAsUpIndicator">@drawable/back</item> <!--返回icon-->
</style>
3:全透到navigationnar上面
在oncreate方法里面加入如下代码:
window.requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
getActionBar().setBackgroundDrawable(this.getBaseContext().getResources().
getDrawable(R.drawable.infinix_actionbar_bg));//使用透明背景图片infinix_actionbar_bg设置actionbar
4:自定义actionbar 上面的menu
1:修改menu的背景颜色与字体,背景修改android:popupMenuStyle的风格,字体修改android:textAppearanceLargePopupMenu
<style name="MusicBrowserTheme" parent="@android:style/Theme.Material">
<item name="android:colorPrimaryDark">@color/theme_primarydark_color</item>
<item name="android:colorPrimary">@color/theme_primary_color</item>
<item name="android:actionBarStyle">@style/MusicBrowserActionBarStyle</item>
<item name="android:actionOverflowButtonStyle">@style/FmOverflowButtonStyle</item>
<item name="android:popupMenuStyle">@style/PopupMenu2</item>
<item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item>
</style>pupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large">
<item name="android:textColor">#444444</item>
<item name="android:textSize
</style>
<style name="PopupMenu2" parent="@android:style/Widget.Material.Light.PopupMenu">
<!--item name="android:popupBackground">@drawable/menu_popup_panel_holo_light</item-->
<item name="android:popupBackground">#fafafa</item>
</style>
<style name="myPo">16sp</item>
</style>
5:listview 自定义风格
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:left="16dp"
android:right="16dp">
<shape android:shape="rectangle" >
<solid android:color="#e1e1e1" />
</shape>
</item>
</layer-list>
第二步:将上面xml作为背景加入listview的android:divider属性
<ListView
android:id="@+id/station_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@drawable/infinix_main_list_divider_line"
android:dividerHeight="0.5dp"/>
2:修改分割线高度
android:dividerHeight="0.5dp"
注意:如果是设置每个item的高度,则只要修改对应item布局文件
6:ExpandableListView树型listview替换向上向下箭头
第一步:在drawable中建立expandablelistview_indicator.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_expanded="true" android:drawable="@drawable/up_indicator" />
<item android:state_expanded="false" android:drawable="@drawable/down_indicator" />
</selector>
第二步:在代码中使用该配置图片
ExpandableListView lv = getExpandableListView();
lv.setGroupIndicator(this.getResources().getDrawable(R.drawable.expandablelistview_indicator));
6:改变tabhost 的单个tab项的长宽秘籍,专治各种通过代码addTab()
第一步:布局中TabWidget的layout_width与layout_height设置为"wrap_content<TabWidget
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
第二步:代码中获取子项设置宽高即可
mTabHost.getTabWidget().getChildAt(0).getLayoutParams().width = 100;//第一个tab项
mTabHost.getTabWidget().getChildAt(1).getLayoutParams().width = 200;//第二个tab项
有个更加强大的方法:
private void updateTab(final TabHost tabHost) {
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
View view = tabHost.getTabWidget().getChildAt(i);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(300, 120);
params.setMargins(60, 0, 60, 0);//设置Tab之间的间隔
view.setLayoutParams(params);
TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
// tv.setTextSize(16);//设置标题字体大小
// tv.setTypeface(Typeface.SERIF, 2); // 设置字体和风格
if (tabHost.getCurrentTab() == i) {//选中
tv.setTextColor(this.getResources().getColorStateList( R.color.app_blue));//Tab被选中的时候标题的颜色
} else {//不选中
tv.setTextColor(this.getResources().getColorStateList( android.R.color.black));//Tab被不选中的时候标题的颜色
}
}
}
- android 中actionbar ,menu,Listview 风格自定义札记
- Android actionbar Menu 和 overflow的自定义
- Android 下的 Actionbar 自定义风格
- android: 在fragment中添加actionbar, menu
- Android中自定义Menu
- Android ActionBar与Menu - 2 - email中ActionBar分析
- android ActionBar与Menu - 2 - email中ActionBar分析
- 自定义actionbar风格
- 自定义actionbar风格
- 自定义Actionbar的风格
- 自定义ActionBar的风格
- android ActionBar与Menu
- Android之自定义 ActionBar 上的菜单(Menu)文字颜色
- Android 中自定义 Menu 资源
- Android 中自定义 Menu 资源
- Android 中自定义 Menu 资源
- Android开发UI之自定义ActionBar的风格
- 51 Android fragment actionbar 中 Menu 界面管理
- 一个老电工的困惑 企业领导不重视维修电工技术培养
- ANDROID CollapsingToolbarLayout
- hadoop之Kmeans数据挖掘算法实现
- JMeter错误:Response message: Non HTTP response message: Host of origin may not be blank
- 九度OJ-1007:奥运排序问题
- android 中actionbar ,menu,Listview 风格自定义札记
- Iterative Method / Recursive Method
- 按power key灭屏时,背光有一个慢慢变暗的过程,如果希望马上灭屏,应该如何修改?
- Chrome 标签跳转
- runtime运行时的用法(一)
- 欢迎使用CSDN-markdown编辑器
- 【语言-C++】调试运行(在vs)Debug和Release 、以及独立运行Debug无错误,独立运行Release却出现崩溃
- linux基础知识
- python 与ADB shell交互