随笔分类 -  Android学习系列

Android开发相关的总结
摘要:有些东西看多了,就厌烦了:extjs对我这种感觉最为强烈。甚至,有时觉得设计之殇是审美疲劳。直角看多了,就想看看圆角,不知何时,这几年刮起了一阵阵的圆角设计风:CSS新标准纳入圆角元素,iphone中几乎随处可见圆角设计,也开始出现很多圆角名片了...今天我们就实现一个圆角的ListView效果。圆角的设计,我们并不追求到处都用,无处不用,android中有少数界面用直角确实容易显得锋利,和周边界面太过对比而显得不协调,比如大栏目列表,设置等等,而采用圆角实现,则会活泼,轻松的多,也融合的特别好。1.感觉实际上在Android中因为SDK中没有默认对圆角的一个完整的支持,需要麻烦自定义设置才能 阅读全文
posted @ 2011-09-19 21:23 谦虚的天下 阅读(29760) 评论(32) 推荐(8) 编辑
摘要:在上篇文章《Android学习系列(22)--App主界面比较》中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局。今天我们就这个经典布局,用代码具体的实现它。1.预览图先看下最终的界面设计图:上面顶部是一个9patch背景图片+标题文字;下面底部是5个tab标签,表示应用的5大模块。中间内容部分则是各个模块的具体内容,可以再分类,或者直接显示内容。2.准备素材按照上篇文章的界面,我们需要事先提供两大方面的素材:顶部+底部。顶部的素材非常简单,最重要的是背景(9patch的图片):底部的素材稍微多一点:(1).每个tab的背景都需要正常和选中两种,一共10张图片;(2).每个tab之 阅读全文
posted @ 2011-09-03 16:45 谦虚的天下 阅读(30259) 评论(15) 推荐(14) 编辑
摘要:本文算是一篇漫谈,谈一谈当前几个流行应用的主界面布局,找个经典的布局我们自己也来实现一个。不是为了追求到底有多难,而是为了明白我们确实需要这么做。走个题,android的UI差异化市场依然很大,依然值得去挖掘。铸就经典,是为了超越经典!下面我们以下面10个应用来分析比较它们的主界面:1.QQ20112.新浪微博3.凤凰周刊4.小米读书5.微信6.太平洋电脑网7.360卫士8.Camera3609.大众点评网10.挖财1.QQ2011QQ应用最新版本QQ2011 Beta3,从最新的版本看,界面比之前简洁了一些。我以夜间模式为例子:从图中可以看出来,QQ分为3大模块:空间动态,QQ聊天,其他QQ 阅读全文
posted @ 2011-08-28 10:33 谦虚的天下 阅读(14464) 评论(6) 推荐(5) 编辑
摘要:游标ListView,提供索引标签,使用户能够快速定位列表项。 也可以叫索引ListView,有的人称也为Tweaked ListView,可能更形象些吧。 一看图啥都懂了:1.游标(Fast scroll thumb) 就是右边的那个拖动的方块,这个非常的简单: <ListView android:id="@+id/tweaked_list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:fastScrollEna 阅读全文
posted @ 2011-08-04 09:53 谦虚的天下 阅读(17821) 评论(4) 推荐(9) 编辑
摘要:JSON数据格式,在Android中被广泛运用于客户端和网络(或者说服务器)通信,非常有必要系统的了解学习。 恰逢本人最近对json做了一个简单的学习,特此总结一下,以飨各位。 为了文章简明清晰,尽量多列点,少废话。 参考文档:http://www.ietf.org/rfc/rfc4627.txt?number=46271.JSON解析 (1).解析Object之一:{"url":"http://www.cnblogs.com/qianxudetianxia"} 解析方法:JSONObject demoJson = new JSONObject(json 阅读全文
posted @ 2011-07-22 15:58 谦虚的天下 阅读(16800) 评论(11) 推荐(4) 编辑
摘要:宜未雨而绸缪,毋临渴而掘井。----朱用纯《治家格言》 离线下载,在有网络的情况下下载服务器数据,以便无网络时也能阅读,就是离线阅读。 离线下载的功能点如下: 1.下载管理(开始、取消下载)。 2.网络判断(Wi-Fi,3G)。 3.独立进程。 4.定时和手机催醒。 5.自启动。1.下载管理 这里不便关注下载的细节方法,网络下载的方法很多,大概如下: /** * 下载文件 * @param url 下载地址 * @param dest 下载存放的本地文件 * @param append 断点续传 * @return * @throws Exception */ public long dow. 阅读全文
posted @ 2011-07-20 01:54 谦虚的天下 阅读(10188) 评论(10) 推荐(7) 编辑
摘要:本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构。 关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的。 从艺术的角度看,其实我们是在追求一种美。 本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用android工程模板。 1. 微盘 2.久忆日记 3.网易新闻 4.小米应用1.微盘 微盘的架构比较简单,我把最基本,最主干的画了出来: 第一层:com.sina.VDisk:com.sina(公司域名)+ap. 阅读全文
posted @ 2011-06-26 14:16 谦虚的天下 阅读(21108) 评论(13) 推荐(14) 编辑
摘要:根据前面文章中ListView拖拽的实现原理,我们也是很容易实现推拽GridView的,下面我就以相同步骤实现基本的GridView拖拽效果。 因为GridView不用做分组处理,代码处理起来更简洁,而且原理前面已经讲解清楚了,代码中只是简单的过下,必要的地方简单的注释一下。1.主界面DragGridActivity.public class DragGridActivity extends Activity { private static List<String> list = null; //自定义适配器 private DragGridAdapter adapter = n 阅读全文
posted @ 2011-06-20 00:23 谦虚的天下 阅读(15036) 评论(10) 推荐(1) 编辑
摘要:接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果。7.重写onTouchEvent()方法。 在这个方法中我们主要是处理拖动和放下。 拖动是选中项的影像随着手指滑动;放下是在拖动结束的时候交换数据。 方法的整体结构如下: /** * 触摸事件 */ @Override public boolean onTouchEvent(MotionEvent ev) { //如果dragmageView为空,说明拦截事件中已经判定仅仅是点击,不是拖动,返回 //如果点击的是无效位置,返回,需要重新判断 if(dragImageView. 阅读全文
posted @ 2011-06-13 01:22 谦虚的天下 阅读(18563) 评论(13) 推荐(7) 编辑
摘要:研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨。 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章。一、准备。1.需求问题 初步:实现列表的拖拽效果(可参考Android源码下packages/apps/Music中的播放列表TouchInterceptor.java源码)。 (提前说明一下,本文不是完全按照Music中实现的,代码实现方式做了一些调整,去掉来很多无关的东西,方便大家理解,效果上也修改成了另外一种个人认为是更简单更高效的一套。) 拓展:借鉴上一篇文章Android学习系列(9)--App列表. 阅读全文
posted @ 2011-06-12 23:01 谦虚的天下 阅读(27303) 评论(14) 推荐(11) 编辑
摘要:吸引用户的眼球,是我们至死不渝的追求; 第一时间呈现最有价值的信息,简明大方,告诉客户,你的选择是多么的明智,这正是你寻觅已久的东西。 分组的应用场合还是很多的,有数据集合的地方往往要分组显示; 分组的形式也很多,最常见的就是镶嵌在列表中,网上说的很多ExpandListView的也是一种。 Android自带的通讯录中的联系人是按照拼音首字母(A,B,C,D......)分组分类的,效果如下: 我们今天也是要实现这样类似的一个效果。1.样本数据: 为了突出重点,直击要点,这里提供一个整理好的数据样本://list:数据集合private List<String> list = n 阅读全文
posted @ 2011-06-07 17:26 谦虚的天下 阅读(51104) 评论(32) 推荐(9) 编辑
摘要:这篇文章是android开发人员的必备知识。1.轮询服务器 一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务。 其中需要注意轮询的频率设置,要在需求和性能中平衡。2.独立进程 无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后... 阅读全文
posted @ 2011-05-03 00:04 谦虚的天下 阅读(28955) 评论(34) 推荐(22) 编辑
摘要:Android学习系列的文章目录Android学习系列(1)--App签名(为apk签名)Android学习系列(2)--App自动更新之通知栏下载Android学习系列(3)--App自动更新之自定义进度视图和内部存储Android学习系列(4)--App自适应draw9patch不失真背景And... 阅读全文
posted @ 2011-05-02 11:39 谦虚的天下 阅读(17344) 评论(14) 推荐(13) 编辑
摘要:这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。1.需求 无论是在.net还是java平台,合理的分层架构是最普遍的模块化思路之一。 dll,jar文件无不风靡盛行,无处不在。 一天,tx团队和我说,我们现在要做android上做三个论坛的客户端,一个是新闻论坛,一个是文学论坛,一个是音乐论坛。除了数据,界面和很少的模块不一样,其他的都一摸一样。 jar是我第一刻就想到的东西,但是共用的jar文件无法方便的共享资源或者覆盖资源。 而我们也不会傻傻的单独做三个客户端的吧,也不会傻傻的做3个客户端再傻傻的copy3份,依次修改吧。2.问题 在Androi 阅读全文
posted @ 2011-05-01 21:15 谦虚的天下 阅读(23167) 评论(32) 推荐(20) 编辑
摘要:人类科技的进步源自探索,探索来自于发现本原,当然App布局没这么先进,本文也只是一个归类总结。这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。Android界面开发多多少少会有很多雷同或者相似的布局,不仅如此,纵观Android应用的界面,总也逃不出那些熟悉的结构。今天,我根据经验,把我认为的常见的布局做一个分析,归纳出几种简单的模型,这些模型一般是我认为解决其对应布局问题的最佳布局,具体要看情况。因为工作的限制,我无法专门研究天马行空,万罗天象的布局,只能根据我工作中碰到的布局,略加斟酌。还有一点我要强调,这些布局的原则就是:简单,灵活。模型一:水 阅读全文
posted @ 2011-04-29 22:05 谦虚的天下 阅读(21547) 评论(11) 推荐(16) 编辑
摘要:友好的视觉感知和稳定的不出错表现,来自于我们追求美感和考虑的全面性,博客园从技术的角度,一直我都很欣赏。这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。这一篇是对上一篇《Android学习系列(2)--App自动更新之通知栏下载》的补充,因此只是以点为要,点到为止。1.内部存储 出于考虑到用户可能禁掉了SDCard或者电脑暂时插在电脑上且为磁盘连接状态等等,对于这么个情况下,我们应该也要保证我们的程序也是能正常的运行。所以我们要考虑内部存储。 我暂时把内部存储定在/data/data/xxxxxappxxxx/files目录,核心代码如下: //创建 阅读全文
posted @ 2011-04-26 23:20 谦虚的天下 阅读(9520) 评论(13) 推荐(18) 编辑
摘要:1.背景自适应且不失真问题的存在;2.9.PNG格式;3. 使用Draw9Patch.jar制作9.PNG图片之定义拉伸区域;4.使用Draw9Patch.jar制作9.PNG图片之定义内容区域;5.制作.9.PNG的高级技巧;6.SDK中如何处理9.PNG图片;7.android系统中大量应用了9.PNG图片;8.最后送上一些图例,以飨读者,以做后鉴。 阅读全文
posted @ 2011-04-17 03:04 谦虚的天下 阅读(37842) 评论(39) 推荐(17) 编辑
摘要:见证过博客园的多次升级,你也希望你的软件通过更新发布新特性通知用户吧,是的。这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。1.设计思路,使用VersionCode定义为版本升级参数。 android为我们定义版本提供了2个属性:<manifest package="com.cnblogs.tianxia.subway" android:versionCode="1" <!--Integer类型,系统不显示给用户--> android:versionName="1.0"&l 阅读全文
posted @ 2011-04-12 22:45 谦虚的天下 阅读(50625) 评论(68) 推荐(23) 编辑
摘要:写博客是一种快乐,前提是你有所写,与人分享,是另一种快乐,前提是你有舞台展示,博客园就是这样的舞台。这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。2.签名的步骤 a.创建key b.使用步骤a中产生的key对apk签名3.具体操作 方法一:命令行下对apk签名(原理) 创建key,需要用到keytoo 阅读全文
posted @ 2011-04-09 16:19 谦虚的天下 阅读(154336) 评论(40) 推荐(24) 编辑