android
文章平均质量分 90
亓斌
人不会死在绝境,却往往栽在十字路口
展开
-
ViewGroup初探,自定义LinearLayout
这篇文章我们开始向ViewGroup进军,打造一个简单的LinearLayout,当然该LinearLayout还不能用于项目中,只是为了学习使用。首先new一个class, 让它继承自ViewGroup, 默认会让你重写onLayout方法,因为该方法在ViewGroup中是abstract的:@Overrideprotected abstract void onLayout(bool原创 2014-12-03 10:44:52 · 1899 阅读 · 0 评论 -
打造完美的ImageLoader——LruCache+DiskLruCache
做android应用少不了要和网络打交道,在我刚开始学android的时候总是处理不好网络图片的加载,尤其是图片乱跳的问题,后来发现了各种缓存图片的方法:本地缓存、软引用、LruCache....我知道的这三种方法中,第一中和其他两种并不冲突,我们完全可以缓存到本地一份,在缓存到内存中一份。软引用这样方式,第一次使用软引用的时候,感觉做一个完美的内存缓存太容易了,可惜在android2.3以后原创 2014-12-01 11:07:11 · 2509 阅读 · 1 评论 -
android实现discuz论坛的登录
今天工作中遇到的一个问题,需求是这样的,需要给dz的论坛做一个android扩展,这肯定少不了会员登录,就得需要二次开发dz提供一个登录接口,眩晕中。。。因为我对dz不熟悉,所以这个工作对我来说还是有难度的。仔细分析了一下,在android上为什么需要客户端登录? 答案是肯定的,就是为了获取能唯一标识该用户的信息——uid,其实登录的目的就是这么单纯(提供接口不也是给客户端一个uid嘛)。原创 2014-12-16 20:47:44 · 3777 阅读 · 0 评论 -
打造可下拉的EditText--DropEditText
android的默认Spinner只能下拉选择内容,而不能选择,有时候我们想提供给用户更加人性化的原创 2014-11-23 19:57:45 · 3835 阅读 · 0 评论 -
修改RadioButton默认的按钮
现在有这么一个需求,有两个单选按钮,yon原创 2014-11-04 08:30:21 · 4922 阅读 · 1 评论 -
ViewDragHelper详解(一)- 可拖动的view
ViewDragHelper从名称上就可以看出, 这是一个用来简化viewtuod原创 2014-11-10 21:01:40 · 9093 阅读 · 1 评论 -
打造android ORM框架opendroid(三)——持久化数据
在上一篇博客《打造android ORM框架opendroid(二)——自动创建数据库》中,我们介绍了opendroid是怎么做到自动帮我们创建好数据库并通过反射拼凑出创建数据库的SQL语句,接着上面的博客,今天要来介绍一下opendroid数据库持久化(也就是insert操作)是怎么一个流程。废话不多少,我们马上进入主题。...还记得通过opendroid我们是如何将数据保存到数据库原创 2015-01-19 13:50:12 · 2239 阅读 · 0 评论 -
打造android ORM框架opendroid(七)——数据库升级方案
在上一篇博客《打造android ORM框架opendroid(六)——级联查询》我们讲了OpenDroid最后一块功能查询的实现原理。今天我们将进行OpenDroid一个重头戏,也是本系列博客的最后一篇——数据库升级方案。说道数据库升级,我可是很头疼的, 为什么呢? 因为以前的项目中,根本没有考虑数据库升级方案的问题,就直接drop table了,这样导致的结果就是“以前的数据都消失了”。额原创 2015-02-09 09:03:28 · 2174 阅读 · 6 评论 -
android标签云:LabelView
嘿嘿, 逗比们好,今天我们来做一个android上的标签云效果,额, 虽然还不是 很完美,但是已经足够可以展现标签云的效果了,首先来看看效果吧。额, 录屏只能录到这个份上了,凑活着看吧。今天我们就来实现一下这个效果, 这次我选择直接继承view来, 什么? 这样的效果不是SurfaceView擅长的吗? 为什么要view,其实都可以了, 我选择view,是因为:额,我对Surf原创 2015-02-11 20:42:55 · 3487 阅读 · 1 评论 -
Android打造不一样的EmptyView
大家都对ListView非常熟悉,目测也会经常使用ListView的一个方法setEmptyView,来设置当数据加载中或者数据加载失败的一个提醒的效果,这个方法虽然使用起来简单,但是如果你提供一个复杂的布局,例如: 在数据加载失败后,添加一个Button让用户可以选择重新加载数据。那么,你可能会这么做,find这个button,然后给button设置点击事件,好吧。。。一个两个的还可以忍受,原创 2015-07-28 08:32:31 · 10582 阅读 · 19 评论 -
Android官方数据绑定框架DataBinding(一)
还记得在博客《高逼格UI-ASD(Android Support Design)》的开始曾经说过, Android最新推出了一个官方的数据绑定框架-Data Binding Library。现在github上也有很多三方的数据绑定框架,但是我们为什么要选择官方的呢?恩,答对了。就是因为是官方的,三方的东西说不定什么时候作者一步高兴就停止更新了,官方的就不一样了,我们可以看到它渐渐的稳定起来。好了废原创 2015-08-10 09:22:39 · 20244 阅读 · 20 评论 -
高逼格UI-ASD(Android Support Design)
绪今年的Google IO给我们android开发着带来了三样很屌很屌的library: ASD(Android Support Design) APL(Android Percent Layout) DBL(Data Binding Library) 这三个库都是很屌很屌的库,第一个可以让我们在低版本的Android上使用Material Design,第二个是为了更好的适原创 2015-07-12 15:53:08 · 17141 阅读 · 17 评论 -
android动手写平滑滚动歌词控件
马上毕业了,前段时间一直忙自己的毕业设计和毕业论文,做的是一个android音乐播放器,今天特意抽出里面的一块功能来凑这篇博客--歌词的显示。看看QQ音乐,歌词显示略屌,可惜我们的LRC文件并不能做到词的同步,只能做到行的同步,所以,退而求之,今天的歌词空间只是同步行,那他有什么功能呢? 歌词同步就不说了,切换滑动效果是我后加上的,因为我看着一行行的切换太过生硬。下面开始进入主题。...原创 2015-05-12 10:08:15 · 7409 阅读 · 17 评论 -
自己实现notifyDatasetChanged
今天这篇博客,我们来实现一下adapter那个最常用的notifyDatasetChanged功能,我们利用一个继承一个LinearLayout来实现一个可能在日常工作中很常用的功能。 大家在工作中可能经常遇到这样的功能: 需要定义一个列表来展示菜单,但是这个菜单并不一定适合ListView,然后,我们可能就通过一个LinearLayout来实现。如何让我们的LinearLayou原创 2015-06-08 08:40:28 · 3325 阅读 · 3 评论 -
android事件如何分发给子view
哈哈,第一次使用markdown,看着挺高大上的啊。如果顺手了,会直接切换默认为markdown。话说关于android事件分发的博客真的不在少数,基本都是基于源码分析+实例代码的形式讲解。今天的这篇博客呢,主要的侧重点并不是在事件分发上,而是在事件的转换上。为什么需要事件转换? 打个比方吧: 我们点击一个TextView的左上角,加入这个TextView在它老子的中间位置,那我们点击的x/y应原创 2015-05-23 11:22:02 · 3888 阅读 · 0 评论 -
自己动手做sidebar
由于项目原因,需要一个类似联系人列表那种选择的“导航”,这玩意叫什么名, 我至今还是不太清楚, 听群里有哥们说this is sidebar, 那咱们也叫他sidebar吧。首先来一张图片, 来看看sidebar到底是个什么玩意。ok, 就这玩意, 大家应该很熟悉吧, 这篇博客我们就来做这么一个东西,首先说明一点:代码~ so easy。首先,来分析一下,当我们看到这个效果后,应该原创 2015-04-25 11:37:48 · 2567 阅读 · 0 评论 -
ListView混搭ProgressBar最佳更新方式
很多时候我们都通过BaseAdapter.getView()中的convertView来提高ListView的性能,这个时候如果我的的ListView的Item里有一个正在更新ProgressBar,结果就悲惨了。。。 滑动界面时并没有达到我们想要的效果。解决这个问题其实很容易,在数据集中保存一下更新的进度,然后在getView中不断去设置进度。还有一个问题就是,当有进度更新的时候,我们是要不原创 2015-04-05 14:28:10 · 9029 阅读 · 0 评论 -
使用Scroller制作滑块开关ToggleButton
Scroller这个类在自定义view中使用的还算是很频繁的,和它名字一样,我们一般是在控制滑动的时候使用Scroller,以便让view滑动起来不那么生硬。在官方的解释上,Scroller是一个滑动辅助类,也就是说Scroller本身并不参与滑动,而是让我们的代码在Scroller的辅助下轻松的实现平滑滑动的效果。既然Scroller只是一个辅助类,那能不能利用它来辅助一些其他的功能呢? 当原创 2015-04-02 09:26:49 · 2265 阅读 · 3 评论 -
new Handler().obtainMessage().sendToTarget()过程分析
new Handler().obtainMessage().sendToTarget()这句话用着真爽,一行代码就能搞定异步消息了!所以在代码中使用的算是非常频繁的了,那这又是一个什么样的过程呢? 这个过程中又有什么玄机呢? 这篇文章,我们来一步步的分析一下这三句话。1、new Handler()的分析new Handler()会辗转来到public Handler(Callb原创 2015-03-30 17:40:09 · 10066 阅读 · 1 评论 -
ListView+CheckBox两种解决方案及原因分析
最近在用ListView+CheckBox搞一个item选中的项目,我将CheckBox的focus设置为false,另我大喜的是,CheckBox竟然可以选中(窃喜中),这么简单就搞定了,因为数据量较小,也没有发现什么问题。后来数据多了, 页面需要滑动了, 发现了一个奇怪的问题,前面明明选中了,而再次滑动回去的时候竟然变成未选中状态!这是我刚开始写的那段错误的代码:@Override原创 2015-03-16 15:05:38 · 2392 阅读 · 6 评论 -
打造android ORM框架opendroid(五)——数据更新的实现
在上一篇博客《打造android ORM框架opendroid(四)——优雅的删除数据》中,我们介绍了opendroid是如何优雅的从数据库中删除数据的,也可以看到opendroid的设计是如此的简单,其实opendroid只是我作为兴趣或者说是抱着试试的态度写的,当然它肯定存在诸多不足,但是这并不影响我们去了解一个orm框架的流程。废话不说了,下面进入主题,今天我选择去了解的是opend原创 2015-01-26 09:02:47 · 2147 阅读 · 0 评论 -
打造android ORM框架opendroid(四)——优雅的删除数据
在上一篇博客《打造android ORM框架opendroid(三)——持久化数据》中,我们感受到了opendroid保存数据的流程,今天的博客我们来顺一下opendroid是如何删除数据的。还记得我们在第一篇博客《打造android ORM框架opendroid(一)——ORM框架的使用》中介绍过opendroid的使用,先来回顾一下怎么利用opendroid来删除数据吧。int原创 2015-01-24 09:22:06 · 3112 阅读 · 0 评论 -
仿QQ侧滑删除ListView——2015第一博
一直感觉QQ最近联系人那个侧滑删除功能挺高大上的,经过几经波折,终于在新的一年里实现了该功能。实现这个功能真是费了老劲了,好几次有了想法,兴奋的去写代码实现,结果让代码打了自己一个耳光,最终还是用margin的方式实现了这种效果,好吧, 先上效果!看完效果,就来说一下思路吧:1、item的左右滑动效果我是用的magin实现的。2、虽然item布局原创 2015-01-06 09:47:14 · 4472 阅读 · 4 评论