仿微沟道效应,主要actionbar有些知识
仿微沟道效应,主要actionbar有些知识
1.新actionBar的menu
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.pangzaifei.weixin.Demo" >
<item
android:id="@+id/action_search"
android:title="查询"
android:icon="@drawable/actionbar_search_icon"
android:actionViewClass="android.widget.SearchView"
android:showAsAction="ifRoom|collapseActionView"
/>
<item
android:id="@+id/action_plus"
android:title="加入"
android:icon="@drawable/actionbar_add_icon"
android:actionProviderClass="com.pangzaifei.weixin.MyActionPlusProvider"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_album"
android:title="我的相冊"
android:icon="@drawable/ofm_photo_icon"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_album"
android:title="我的收藏"
android:icon="@drawable/ofm_collect_icon"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_album"
android:title="我的银行卡"
android:icon="@drawable/ofm_card_icon"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/ofm_setting_icon"
android:title="设置"
android:icon="@drawable/ofm_photo_icon"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_album"
android:title="意见反馈"
android:icon="@drawable/ofm_feedback_icon"
android:showAsAction="ifRoom"
/> </menu>
使用内置的searcharview
<pre name="code" class="java"> android:actionViewClass="android.widget.SearchView"
使用provider,实现微信+号功能
android:actionProviderClass="com.pangzaifei.weixin.MyActionPlusProvider"
2.一些注意的地方
/**
* 防止很多其它button在一些手机上不显示的问题
*/
private void showOverFlowAlawys() {
ViewConfiguration configuration = ViewConfiguration.get(this);
try {
Field field = ViewConfiguration.class
.getDeclaredField("sHasPermanentMenuKey");
field.setAccessible(true);
field.setBoolean(configuration, Boolean.FALSE);
} catch (Exception e) {
e.printStackTrace();
} }
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
// 设置显示icon
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
} }
}
return super.onMenuOpened(featureId, menu);
}
使用须要配置PagerSlidingTabStrip
<resources> <declare-styleable name="PagerSlidingTabStrip">
<attr name="pstsIndicatorColor" format="color" />
<attr name="pstsUnderlineColor" format="color" />
<attr name="pstsDividerColor" format="color" />
<attr name="pstsIndicatorHeight" format="dimension" />
<attr name="pstsUnderlineHeight" format="dimension" />
<attr name="pstsDividerPadding" format="dimension" />
<attr name="pstsTabPaddingLeftRight" format="dimension" />
<attr name="pstsScrollOffset" format="dimension" />
<attr name="pstsTabBackground" format="reference" />
<attr name="pstsShouldExpand" format="boolean" />
<attr name="pstsTextAllCaps" format="boolean" />
</declare-styleable> </resources>
样式微调
<style name="WeixinTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/WeChatActionBar</item>
<item name="android:itemBackground">@drawable/actionbar_bg_selector</item>
<item name="android:actionBarItemBackground">@drawable/actionbar_bg_selector</item>
<item name="android:itemTextAppearance">@style/WeChatActionBarOverflow</item>
<item name="android:actionOverflowButtonStyle">@style/WeChatActionButtonOverflow</item>
</style> <style name="WeChatActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">#303537</item>
<item name="android:titleTextStyle">@style/WeChatActionBarTitleText</item>
</style> <style name="WeChatActionBarTitleText" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#cfcfcf</item>
<item name="android:textSize">17sp</item>
</style> <style name="WeChatActionBarOverflow" parent="@android:style/Widget.ActionButton.Overflow">
<item name="android:textSize">16sp</item>
</style> <style name="WeChatActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/actionbar_more_icon</item>
</style>
完整代码下载地址:
http://download.csdn.net/detail/pangzaifei/7672161
版权声明:本文博主原创文章,博客,未经同意不得转载。
仿微沟道效应,主要actionbar有些知识的更多相关文章
- android——仿微拍贷滑动圆形菜单
一次偶然机会接触到微拍贷的app,瞬间被其圆形可滑动菜单吸引了.一直琢磨着给弄出来. 现在弄出来了.先看看效果吧 如果你也喜欢这个菜单.去我的github找源码吧.太忙了.没时间贴代码和讲解了. ht ...
- android安卓程序源码---高仿微信源码
先截几张图: 部份源代码如下所示: package cn.buaa.myweixin; import java.util.ArrayList; import android.os.Bundle; im ...
- springboot微服务的简单小结
springboot微服务的简单小结 近来公司用springboot微服务,所以小结一下. 基础: 什么是SpingBoot微服务? 如何创建SpringBoot微服务? 如何管理和完善SpringB ...
- Re:从0开始的微服务架构:(一)重识微服务架构--转
原文地址:http://www.infoq.com/cn/articles/micro-service-architecture-from-zero?utm_source=infoq&utm_ ...
- 仿MSDN的帮助系统
作为软件开发人员,软件做好后,接下来就是编写文档.我自己也是做软件的,经常有用户询问软件的安装与使用, 我一直很喜欢微软的MSDN帮助系统,简介.大气,使用方便. 网上也找了很久,感觉一直没有合适的, ...
- java基础知识面试总结-部分
前言 在平时的工作学习中,自己对微服务和springboot基础理论知识关注比较少,在面试中对于面试官的问题,很多基本都不能够达到精准,全面:现将自己面试中的问题做以总结: 1.谈谈你对微服务架构的认 ...
- fir.im Weekly - iOS 保持界面流畅的技巧
生命不息,coding 不止.本期 fir.im Weekly 收集了微博上的热转资源,包含 Android.iOS 开发工具.源码分享,产品 UI 设计的好文章,还有一些程序员成长的 Tips,希望 ...
- 简易解说拉格朗日对偶(Lagrange duality)(转载)
引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不 ...
- OA,ERP等源码一部分演示
更多源码http://www.pssdss.com QQ:11851298 功能强大的JAVA开发的ERP源码http://cx050027.pssdss.com:8080/ 用户名pssdss ...
随机推荐
- xcode Workspaces
A workspace is an Xcode document that groups projects and other documents so you can work on them to ...
- hdu4126(最小生成树+dfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4126 题意:给出一幅3000个点的图,有10000次操作: 求将某条边的权值变大后的最小生成树,最后输 ...
- CodeIgniter Apacheserver htaccess SEO重写写法
1)支持重写 2)兼容全部APACHE server 3)假设不是文件,请求的结尾不包含反斜杠,自己主动跳转到反斜杠 4)文件名称 .htaccess 5)这个放到nginxserver怎么都不支持重 ...
- Linux进程间通信(九)---综合实验之有名管道通信实验
实验目的 通过编写有名管道多路通信实验,进一步掌握管道的创建.读写等操作,同时复习使用select()函数实现管道的通信. 实验内容 这里采用管道函数创建有名管道(不是在控制台下输入命令mknod), ...
- PHP实现冒泡排序、双向冒泡排序算法
冒泡排序(Bubble Sort),是一种较简单的.稳定的排序算法.冒泡排序算法步骤:比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置:对每对相邻的元素执行同样的操作,这样一趟下来,最后的元 ...
- 求1e11以内的素数
有两种做法,一种是打表,另一种是直接求. 打表 将1e11每隔len(len=2000w)个数字统计一下该区间内素数的个数,比如cnt[1] 表示[1,len]以内有多少个素数,cnt[2]表示[le ...
- linq 中执行方法
Database1Entities db = new Database1Entities(); protected void Page_Load(object sender, EventArgs e) ...
- My Solution: Word Ladder
public class Solution { public int ladderLength(String start, String end, Set<String> dict) { ...
- java 通过sftp服务器上传下载删除文件
最近做了一个sftp服务器文件下载的功能,mark一下: 首先是一个SftpClientUtil 类,封装了对sftp服务器文件上传.下载.删除的方法 import java.io.File; imp ...
- java名词,关键字
抽象类:规定一个或多个抽象方法的类别本身必须定义为abstract,抽象类只是用来派生子类,而不能用它来创建对象. final类:又称“最终类”,它只能用来创建对象,而不能被继承,与抽象类刚好相反,而 ...