android 功能实现技巧
张向学
这个作者很懒,什么都没留下…
展开
-
android 更换皮肤(主题)
基本思路:1.每个控件在布局中背景资源不是设置一幅图片,而是设置drawable中的一个xml文件,而这个xml文件给每个控件分了多个level的图片。2.在程序中直接修改level就可以达到修改控件的图片资源的效果!一个皮肤的所有图片设置成一个level,确定level就确定了一个皮肤。 以一个Button为例:第一步:创建 button的buttonskin1.xml原创 2013-05-28 10:51:21 · 955 阅读 · 0 评论 -
oschina-app源码分析-提醒标签BadgeView使用方法
醒标签BadgeView使用方法简介。原创 2014-03-12 10:23:11 · 2729 阅读 · 0 评论 -
oschina-app 的源码分析-主页面滑动切换
以前的项目中也经常用到页面活动切换,但都是用现成项目库viewpaper来实现的,使用起来比较简单,绑定数据,重写下适配器,有必要保存下数据状态避免数据频繁刷新,如果对内存使用要求不高可以设置多个缓存页面:setOffscreenPageLimit(2),oschina里面是通过一个工具类ScrollLayout来实现,跟viewpaper一样都是重写viewgroup来实现,下面我们通过分析Sc原创 2014-02-27 16:51:56 · 1541 阅读 · 0 评论 -
oschina-app源码解析-系统参数保存
最近研究了下oschina-app 的源码,有几个功能实现的挺不错,比如主页面的页面切换效果、开源UIGrendroid的使用、数据的缓存、以及html5的加载、页面动画使用等,在这里跟大家分享一下。原创 2014-02-27 14:51:31 · 963 阅读 · 0 评论 -
oschina-app源码解析-webview重组html
有时候想用webview直接加载现成的我web页面,但是web页面直接放大手机上整体比较小,很难操作,说白了就是不合适,所以需要对html页面进行重组,直接上完整代码String body = UIHelper.WEB_STYLE + newsDetail.getBody(); // 读取用户设置:是否加载文章图片--默认有wifi下始终加载图片 boolean isL原创 2014-02-27 17:46:53 · 1318 阅读 · 0 评论 -
oschina-app源码分析-提醒标签BadgeView使用逻辑流程
分析了oschina-app显示消息标签的,逻辑流程,强调了流程中容易忽略的地方。原创 2014-03-12 15:03:20 · 1502 阅读 · 0 评论 -
oschina-app 源码分析-数据缓存(离线功能)
以前做过数据缓存的项目,也就是实现离线操作。当时刚开始做项目,我们都没什么经验,但是缓存数据无非是数据库或者文件,但是我们选择用xml文件来存储数据,现在看来是有点走远路了,oschina-app通过实现对object的实体流读写来完成数据缓存,来看下显现流程。1,首先在ui线程中另起线程,获取数据: /** * 线程加载帖子数据 * * @param catalog原创 2014-02-27 17:22:58 · 1512 阅读 · 1 评论 -
Android彩信发送
第一,网络切换问题,只能手动切换gprs和apn后才能发送成功。第二,pdu打包问题,pdu打包方法android源码里有,但没有提供接口,添加资源时候要注意资源类型和格式。第三,注意区分不同运营商,不同的彩信代理不一样。原创 2014-02-25 14:28:55 · 3513 阅读 · 3 评论 -
android 获取正确IP
项目中用到获取IP,从网上找了个方法,刚开始用手机移动网的时候,可以获取正确的IP,后来用wifi来调试获取了一连串数字,并且数字太长导致后台入库错误。 后来,发现wifi状态下获取的IP是要经过转换的,在这里提供一个转换后的方法:// Get IP address public static String getLocalIpAddress(Context contex原创 2014-03-07 15:09:04 · 1037 阅读 · 0 评论 -
ThinkAndroid框架 网络状态监听原理
现在用到网络监听的地方越来越广泛,这里提供下ThinkAndroid里的实现方法,还是根据功能原理倒着给出代码: 1、网络状态会发出广播,监听网络状态肯定通过广播接收者实现,广播接受者:/** * @Title NetworkStateReceiver * @Package com.ta.util.netstate * @Description 是一个检测网络状态改变原创 2014-03-27 17:30:47 · 2081 阅读 · 0 评论 -
PinterestLikeAdapterView 瀑布流实现原理
PinterestLikeAdapterView是github上开源的项目,实现了流畅的瀑布流功能,上个图看看:原创 2014-03-18 14:49:05 · 6519 阅读 · 5 评论 -
oschina-app源码解析-webview处理超链接
前面已经介绍,oschina-app源码解析-webview重组html,在这个过程中还有些细节性的问题,分别介绍下,首先介绍下webview来处理超链接。原创 2014-04-03 10:12:19 · 1243 阅读 · 0 评论 -
FragmentTabHost+Fragment+ViewPager实现内外层嵌套Tab
今天介绍现在比较流行的一种app布局方式:内外层嵌套Tab,子Tab可以实现滑动切换。 实现原理:FragmentTabHost+Fragment实现第一层Tab。 在Fragment里利用ViewPaper,实现第二层Tab,也就是子Tab。 从原理可以看出,这两层Tab是完全解耦的,没有任何事件和数据联系,那么先介绍第一层怎么实现,原创 2014-04-02 17:32:01 · 10376 阅读 · 28 评论 -
使用apkplug实现Android客户端插件化
使用apkplug实现Android客户端插件化,apkplug代码虽然不是开源的,但是说明文档比较全,可以很快到实现客户端插件化开发。原创 2014-04-04 11:20:56 · 3004 阅读 · 1 评论 -
android sqlite数据库封装 实现crud
android常用的数据保存方式有文件、sharepreferences、数据库、网络、contentprovider集中方式。 文件存储方式,经常使用在缓存整个页面数据,比如电子书内容、html数据等。 sharepreferrences存储方式,实质也就是xml文件存储的封装,常用于存储配置参数数据。当然也可以用文件存储+Properties来存储参数数据。原创 2014-03-06 17:10:37 · 4648 阅读 · 3 评论 -
google-gson使用解析
今天看到一个项目中用到了,gson来处理json数据,所以注意了下怎么使用,个人觉得有个是比较简单或者虽然复杂但是有规律的json数据可以使用gson来处理,如果是较复杂的json数据还是自己解析的好。这里介绍下gson的简单使用,即实体类和json数据之间的转换。1、首先是实体类到json数据的转换Person实体 public class Person { pri原创 2014-03-05 16:43:02 · 1013 阅读 · 0 评论 -
android 开机自启动服务或应用
1.android怎么让一个service开机自动启动功能的实现。Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED(记得只会触发一次呀),在这里我们可以通过构建一个广播接收者来接收这个这个action.下面我就来简单写以下实现的步骤:2. 第一步:首先创建一个广播接收者,转载 2013-05-28 11:08:31 · 1012 阅读 · 0 评论 -
广播注册和中断(技巧)
两种注册类型的区别是: 1)第一种不是常驻型广播,也就是说广播跟随activity的生命周期。注意: 在activity结束前,移除广播接收器。 2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。public class SmsBroadCastReceiver extends BroadcastReceiver {原创 2013-05-31 12:28:53 · 721 阅读 · 0 评论 -
Sqlite 特殊字符的处理
老用数据库,竟然忽略了,特殊字符的处理,记录下,加深下印象: public static String sqliteEscape(String keyWord){ keyWord = keyWord.replace("/", "//"); keyWord = keyWord.replace("'", "''"); keyWord = keyW原创 2013-06-08 16:05:20 · 3474 阅读 · 0 评论 -
android 调用系统应用
android 调用系统应用 //显示某个坐标在地图上Uri uri = Uri.parse("geo:38.899533,-77.036476");Intent it = new Intent(Intent.Action_VIEW,uri);startActivity(it); //显示路径Uri uri = Uri.parse("http://maps.google.com/maps?原创 2013-06-26 10:51:27 · 790 阅读 · 0 评论 -
android 动画rotate实现图片不停旋转的效果
定义rotate旋转效果在res/anim文件夹下新建tip.xml文件,内容如下 <rotate android:fromDegrees="0" android:toDegrees="359" android:duration="500" android:repeatCount="-1" andro转载 2013-07-11 15:59:53 · 5295 阅读 · 1 评论 -
彩信制作
上文介绍了彩信规范,接下来我们说下彩信的制作问题。彩信的制作无非就是生成彩信包。 彩信编辑无非就是生成对应的smil文件,直接上代码:public class makeSmil { // smil文件存放路径 private String filepath = ""; // smil文件名称 private String filename = ""; //原创 2014-02-25 11:24:33 · 1429 阅读 · 0 评论 -
短信发送和存入发件箱-区分长短信-发送状态监听获取数据
前端时间通过客户端对短信发送数量做日志统计,后来发现没那么简单,只从手机端很难做到准确统计。因为存在一下问题:1.短信作为长短信发送,但是移动会按实际字数,70字一条收取费用。2.很难获得发送成功的状态(下面详解)。首先发送短信的详细过程:public static boolean sendSMSMsgLog(Context context, String number,原创 2014-02-25 10:31:21 · 1523 阅读 · 0 评论 -
彩信之SMIL规范
彩信之SMIL规范 上次给大家分析了短信问题,下面我分析下彩信,因为彩信不想短信只是一段文字。彩信有自己的协议格式,先给大大家介绍下彩信是什么,再给大家分析原创、发送、播放彩信问题。 彩信数据资源包,包括两类:1是一个协议文件(smil文件)和一些资源文件,协议文件就是来规范改彩信有哪些资源要播放和以什么方式播放。资源文集博客文字(txt)图片(png/jpg/gif原创 2014-02-25 10:50:10 · 4050 阅读 · 0 评论 -
彩信包存入数据库(发件箱)
上篇介绍了彩信的发送,发送后我们介绍彩信入库,直接上代码:public class MmsToDb { private static String mmsContent = null; // 彩信存放路径 private static final String TEXT_CID = ""; private static final String IMAGE_CID = "";原创 2014-02-25 15:09:17 · 1360 阅读 · 0 评论 -
获取json数据,低版本android无法解析
前端时间搞个json数据传输后,在android端显示,在4.0调试好的代码,在android2.2上就解码异常,但是我看打印的数据日没问题,后来才发现服务端编辑给我的json数据有个隐藏的字符,UTF-8有bom头问题。高版本的android系统可以自动处理掉,低版本的不行,所以要对获取的数据进行处理后,在json解码获取json对象,否则抛出异常,好了上代码:public static S原创 2014-02-25 17:06:31 · 1451 阅读 · 0 评论 -
android 语言切换-横竖屏切换时异常
前端时间要实现语言切换功能,现在总结一下。一般用 语言_地区的形式表示一种语言,如 zh_CN, zh_TW.各国语言缩写: http://www.loc.gov/standards/iso639-2/php/code_list.php国家和地区简写: http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code原创 2014-02-26 13:53:51 · 1857 阅读 · 0 评论 -
开源项目SlideMenu使用详解
以前搞过一个滑动菜单,是自己重写发view,实现了基本功能可以滑动显示,后来看了下SlideMenu的使用,真是非常强大,不但可是简单的设置实现两侧滑动菜单,还可以设置菜单的阴影、渐变色、划动模式等,所以还是老实点直接用现成的吧,当然有时间的话还要看先SlideMenu的源码。这里先详细分析下SlideMenu的使用:准备工作:1. SlidingMenu 下载地址: https://原创 2014-03-03 17:26:57 · 11042 阅读 · 2 评论 -
开源项目Android-Universal-Image-Loader 解析
一、简单说明 Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。这个开源的东西,比我想象的要强的的多,不但实现合理的图片缓存、异步加载,还可以实现线程池的大小,HTTP选项,内存和光盘高速缓存,显示图像等设置。 其默认的缓存目录是mnt/sdcard/Android原创 2014-03-05 15:45:47 · 1260 阅读 · 0 评论 -
android 取消网络加载过程
数据加载过程与人机交互息息相关,如果控制不好,很可能多个线程去刷新一个界面数据,引起异常,所以要根据需求控制好每个异步加载任务。原创 2014-03-24 16:51:53 · 1470 阅读 · 0 评论