- 博客(90)
- 资源 (22)
- 收藏
- 关注
原创 Android Material Design动画
最近在看一些关于Material Design的东西,还记得在博客《你所不知道的Activity转场动画——ActivityOptions》中,我们介绍了一种优雅的activity过度动画。如果大家看了最后给出的参考链接,会发现还有很多内容是值得我们学习的,所以这篇博客,我们来学习一下这一页上剩下的东西。一、触摸反馈大家都知道,在Material Design中,触摸反馈的效果非常绚丽,是
2015-10-12 09:01:08 14611 7
原创 Android封装支付宝支付
在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装。 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用。
2015-10-05 10:54:07 8253 6
原创 FontAwesome-用TextView显示图片
在Android项目开发中,图片可谓是必不可少的一部分,这时我们可能会去看许多图片的适配方案,例如,根据不同分辨率来提供多套图什么的…这篇文章并不是去介绍如何去做图片的适配,而是介绍一个略屌的字体库,利用该字体库,我们可以用TextView的形式去显示图片,而且我们还可以用android:textSize随意改变图片的大小! 听起来是不是有点小激动了,不要着急,因为它只是一个字体库,所以使用起来非
2015-09-23 08:57:59 6029 10
原创 Android自定义View—仿雷达扫描效果
最近在翻以前写的代码,翻到几个月以前做的一个仿雷达扫描的效果,现在拿出来和大家分享一下,在进入分析和代码之前,我们先来看看效果吧,…录屏质量较差,凑活着看吧。看到这样的效果,肯定是用自定义view的方式去实现的。通过观察效果,我们先来列一列要用的知识吧。整个过程是一个不断绘制的过程,所以我们需要一个Handler。核心的效果是一个扇形,所以我们还需要会绘制扇形。绘制的扇形的颜色有一个梯度变化的
2015-09-21 08:48:33 14263 14
原创 不需要ViewInject,简化你的findViewById
这篇博客会非常非常短,大家在写代码的时候可能烦透了写 findViewById, 我也是, 这时大家可能会去选用一些利用注解写的ViewInject 去简化这个操作, 可是… 我非常不喜欢ViewInject。这时,我就想着自己去实现一下简化findViewById,简化后怎么用呢?看下面的代码,TextView textView = V.f(this, R.id.textView);Image
2015-09-15 18:02:31 4537
原创 ListView底部item飞入动画效果
最近有朋友展示了一种效果,就是ListView在滑动的过程中新加入的item会有一个从底部滑入的效果,我感觉这种效果还算不错,就去想了想拿到我身上应该怎么去实现这种效果,在试过几种方案后,最后选择了一种使用起来还算比较简单的方式拿出来分享一下。 在开始分享之前,先来看看我们需要做成什么效果吧,恩,看到什么效果了吗?仔细看滑动过程中的底部,新加入的item会以一种动画的形式加入,马上,我们就来实现这
2015-09-14 08:52:55 8268 5
翻译 Android创建自定义键盘
原文标题:Create A Custom Keyboard on Android原文链接:http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android–cms-22615大部分Android设备没有物理键盘,作为代替,这些设备使用软键盘来接受用户输入,如果你对Android的个性化开发感兴趣,相信,创建一个自定义的软键盘
2015-09-08 08:47:14 12805 3
原创 RecyclerView+ImageLoader打造多选图库
在上一篇博客《Universal-ImageLoader源码解析》中,我们从源码的角度分析了ImageLoader,这篇博客我们就开始结合RecyclerView和ImageLoader打造一个图片系统。需求在我的项目中有一个多图选择的需求,但是系统的图库只能选择一张图片,所以我们只能自己来做一个简单的图片。利用RecyclerView和ImageLoader可以很轻松的实现这个功能,下面我们先来看
2015-09-07 08:50:36 6386 9
原创 Universal-ImageLoader源码解析
在我们项目中肯定会用到一些第三方的library,有网络框架,图片处理框架等。而我现在常用的就是volley和ImageLoader了,上上篇博客我们把Volley的代码分析了一下,今天我们就来拿一个常用的图片框架——UniversalImageLoader来分析一下。如何去看源码?我一般都是从公开的使用方法介入,对于今天我们要看的ImageLoader当然就是,ImageLoader.displa
2015-09-05 08:54:08 5236 4
原创 你所不知道的Activity转场动画——ActivityOptions
相信大家对于Activity的过度动画都很熟悉了,一般情况下我们直接使用overridePendingTransition(enterAnim, exitAnim);但是这种老旧、生硬的方式怎么能适合我们的MD风格的App呢!好在google在新的sdk中给我们提供了另外一种Activity的过度动画——ActivityOptions。并且提供了兼容包——ActivityOptionsCompat。
2015-08-31 08:54:42 43031 16
原创 Volley源码解析
人人都说Volley写的非常优秀,今天我们就打开volley的源码,来看看volley是怎么实现网络请求的,首先,我们从刚开始使用入手mRequestQueue = Volley.newRequestQueue(App.getInstance());跟进代码,Volley.newRequestQueue,public static RequestQueue newRequestQueue(Conte
2015-08-26 15:09:56 6468 7
原创 Android官方数据绑定框架DataBinding(二)
继续上篇的博客《Android官方数据绑定框架DataBinding(一)》我们继续学习Data Binding的使用。十、inflate 不知道大家注意没有,上面的代码我们都是在activity中通过DataBindingUtil.setContentView来加载的布局的,现在有个问题了,如果我们是在Fragment中使用呢?Fragment没有setContentView怎么办?不要着急,D
2015-08-17 08:47:55 16314 7
原创 Android官方数据绑定框架DataBinding(一)
还记得在博客《高逼格UI-ASD(Android Support Design)》的开始曾经说过, Android最新推出了一个官方的数据绑定框架-Data Binding Library。现在github上也有很多三方的数据绑定框架,但是我们为什么要选择官方的呢?恩,答对了。就是因为是官方的,三方的东西说不定什么时候作者一步高兴就停止更新了,官方的就不一样了,我们可以看到它渐渐的稳定起来。好了废
2015-08-10 09:22:39 20171 20
原创 RecyclerView的高级用法——定制动画
相信大家都对RecyclerView的用法相当熟悉了,RecyclerView的出现给我们开发者提供了一个高扩展的控件, 不管是列表、网格、瀑布流,一个控件就可以搞定,而且神奇的是只需要修改一行代码,就可以轻松切换。RecyclerView的好处太多太多,就不一一列举了,网上也有很多关于RecyclerView的教程。说到这里,我们就开始进入主题了,虽然网上有那么多的RecyclerView教程,
2015-08-03 08:29:32 27441 13
原创 Android打造不一样的EmptyView
大家都对ListView非常熟悉,目测也会经常使用ListView的一个方法setEmptyView,来设置当数据加载中或者数据加载失败的一个提醒的效果,这个方法虽然使用起来简单,但是如果你提供一个复杂的布局,例如: 在数据加载失败后,添加一个Button让用户可以选择重新加载数据。那么,你可能会这么做,find这个button,然后给button设置点击事件,好吧。。。一个两个的还可以忍受,
2015-07-28 08:32:31 10558 19
原创 AndroidSupportDesign之TabLayout使用详解
在上一篇博客《高逼格UI-ASD(Android Support Design)》中,我们大体的对TabLayout进行了一些初步的了解,这篇博客,单独拿出TabLayout来继续讲解是因为:纵观Android Support Design库的几个控件,除了诸如:FAB、SnackBar等几个小控件常用以外,也就TabLayout还ok了,其他的例如CollapsingToolbarLayout,这
2015-07-23 08:56:05 21047 9
原创 高逼格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 17078 17
原创 自己实现notifyDatasetChanged
今天这篇博客,我们来实现一下adapter那个最常用的notifyDatasetChanged功能,我们利用一个继承一个LinearLayout来实现一个可能在日常工作中很常用的功能。 大家在工作中可能经常遇到这样的功能: 需要定义一个列表来展示菜单,但是这个菜单并不一定适合ListView,然后,我们可能就通过一个LinearLayout来实现。如何让我们的LinearLayou
2015-06-08 08:40:28 3286 3
原创 android事件如何分发给子view
哈哈,第一次使用markdown,看着挺高大上的啊。如果顺手了,会直接切换默认为markdown。话说关于android事件分发的博客真的不在少数,基本都是基于源码分析+实例代码的形式讲解。今天的这篇博客呢,主要的侧重点并不是在事件分发上,而是在事件的转换上。为什么需要事件转换? 打个比方吧: 我们点击一个TextView的左上角,加入这个TextView在它老子的中间位置,那我们点击的x/y应
2015-05-23 11:22:02 3838
原创 android动手写平滑滚动歌词控件
马上毕业了,前段时间一直忙自己的毕业设计和毕业论文,做的是一个android音乐播放器,今天特意抽出里面的一块功能来凑这篇博客--歌词的显示。看看QQ音乐,歌词显示略屌,可惜我们的LRC文件并不能做到词的同步,只能做到行的同步,所以,退而求之,今天的歌词空间只是同步行,那他有什么功能呢? 歌词同步就不说了,切换滑动效果是我后加上的,因为我看着一行行的切换太过生硬。下面开始进入主题。...
2015-05-12 10:08:15 7347 17
原创 自己动手做sidebar
由于项目原因,需要一个类似联系人列表那种选择的“导航”,这玩意叫什么名, 我至今还是不太清楚, 听群里有哥们说this is sidebar, 那咱们也叫他sidebar吧。首先来一张图片, 来看看sidebar到底是个什么玩意。ok, 就这玩意, 大家应该很熟悉吧, 这篇博客我们就来做这么一个东西,首先说明一点:代码~ so easy。首先,来分析一下,当我们看到这个效果后,应该
2015-04-25 11:37:48 2532
原创 ListView混搭ProgressBar最佳更新方式
很多时候我们都通过BaseAdapter.getView()中的convertView来提高ListView的性能,这个时候如果我的的ListView的Item里有一个正在更新ProgressBar,结果就悲惨了。。。 滑动界面时并没有达到我们想要的效果。解决这个问题其实很容易,在数据集中保存一下更新的进度,然后在getView中不断去设置进度。还有一个问题就是,当有进度更新的时候,我们是要不
2015-04-05 14:28:10 8971
原创 使用Scroller制作滑块开关ToggleButton
Scroller这个类在自定义view中使用的还算是很频繁的,和它名字一样,我们一般是在控制滑动的时候使用Scroller,以便让view滑动起来不那么生硬。在官方的解释上,Scroller是一个滑动辅助类,也就是说Scroller本身并不参与滑动,而是让我们的代码在Scroller的辅助下轻松的实现平滑滑动的效果。既然Scroller只是一个辅助类,那能不能利用它来辅助一些其他的功能呢? 当
2015-04-02 09:26:49 2211 3
原创 new Handler().obtainMessage().sendToTarget()过程分析
new Handler().obtainMessage().sendToTarget()这句话用着真爽,一行代码就能搞定异步消息了!所以在代码中使用的算是非常频繁的了,那这又是一个什么样的过程呢? 这个过程中又有什么玄机呢? 这篇文章,我们来一步步的分析一下这三句话。1、new Handler()的分析new Handler()会辗转来到public Handler(Callb
2015-03-30 17:40:09 9963 1
原创 ListView+CheckBox两种解决方案及原因分析
最近在用ListView+CheckBox搞一个item选中的项目,我将CheckBox的focus设置为false,另我大喜的是,CheckBox竟然可以选中(窃喜中),这么简单就搞定了,因为数据量较小,也没有发现什么问题。后来数据多了, 页面需要滑动了, 发现了一个奇怪的问题,前面明明选中了,而再次滑动回去的时候竟然变成未选中状态!这是我刚开始写的那段错误的代码:@Override
2015-03-16 15:05:38 2372 6
原创 从一次意外开始说java匿名内部类
java的内部类、匿名类本来以为自己用的已经很溜了, 结果, 就在昨天晚上12点来钟发生了重大事故。要说事故的严重性呢,那就是导致我一晚上没有睡着觉。那下面先用一段模拟代码来描述下我出现的问题的:public class Test { public static void main(String[] args) throws InterruptedException { View v
2015-03-14 10:24:29 2867
原创 android标签云:LabelView
嘿嘿, 逗比们好,今天我们来做一个android上的标签云效果,额, 虽然还不是 很完美,但是已经足够可以展现标签云的效果了,首先来看看效果吧。额, 录屏只能录到这个份上了,凑活着看吧。今天我们就来实现一下这个效果, 这次我选择直接继承view来, 什么? 这样的效果不是SurfaceView擅长的吗? 为什么要view,其实都可以了, 我选择view,是因为:额,我对Surf
2015-02-11 20:42:55 3433 1
原创 打造android ORM框架opendroid(七)——数据库升级方案
在上一篇博客《打造android ORM框架opendroid(六)——级联查询》我们讲了OpenDroid最后一块功能查询的实现原理。今天我们将进行OpenDroid一个重头戏,也是本系列博客的最后一篇——数据库升级方案。说道数据库升级,我可是很头疼的, 为什么呢? 因为以前的项目中,根本没有考虑数据库升级方案的问题,就直接drop table了,这样导致的结果就是“以前的数据都消失了”。额
2015-02-09 09:03:28 2156 6
原创 打造android ORM框架opendroid(六)——级联查询
在上一篇博客《打造android ORM框架opendroid(五)——数据更新的实现》 我们介绍了opendroid数据更新的流程,也就在上次,我们OpenDroid类中的所有操作都介绍完了, 那查询操作呢?不是在OpenDroid中?查询操作是在OpenDroid中,不过是以内部类的形式呈现的。还是来看看如果使用opendroid查询数据吧。OpenDroid.query.find(
2015-02-01 10:18:22 2136
原创 打造android ORM框架opendroid(五)——数据更新的实现
在上一篇博客《打造android ORM框架opendroid(四)——优雅的删除数据》中,我们介绍了opendroid是如何优雅的从数据库中删除数据的,也可以看到opendroid的设计是如此的简单,其实opendroid只是我作为兴趣或者说是抱着试试的态度写的,当然它肯定存在诸多不足,但是这并不影响我们去了解一个orm框架的流程。废话不说了,下面进入主题,今天我选择去了解的是opend
2015-01-26 09:02:47 2101
原创 打造android ORM框架opendroid(四)——优雅的删除数据
在上一篇博客《打造android ORM框架opendroid(三)——持久化数据》中,我们感受到了opendroid保存数据的流程,今天的博客我们来顺一下opendroid是如何删除数据的。还记得我们在第一篇博客《打造android ORM框架opendroid(一)——ORM框架的使用》中介绍过opendroid的使用,先来回顾一下怎么利用opendroid来删除数据吧。int
2015-01-24 09:22:06 3070
原创 打造android ORM框架opendroid(三)——持久化数据
在上一篇博客《打造android ORM框架opendroid(二)——自动创建数据库》中,我们介绍了opendroid是怎么做到自动帮我们创建好数据库并通过反射拼凑出创建数据库的SQL语句,接着上面的博客,今天要来介绍一下opendroid数据库持久化(也就是insert操作)是怎么一个流程。废话不多少,我们马上进入主题。...还记得通过opendroid我们是如何将数据保存到数据库
2015-01-19 13:50:12 2212
原创 打造android ORM框架opendroid(二)——自动创建数据库
在上一篇博客《打造android ORM框架opendroid(一)——ORM框架的使用》中相信你已经了解了opendroid的使用,那么从这篇博客开始,我们正式进入opendroid的源码分析,打造一款自己的ORM框架!在正式开始之前,你需要保证手里有一份opendroid的源码,如果还没下载opendroid,请到http://git.oschina.net/qibin/OpenDroid
2015-01-16 09:57:17 2812 8
原创 打造android ORM框架opendroid(一)——ORM框架的使用
一、我的看法我记得曾经有一篇博客是介绍的litepal的使用,在这篇博客中我提到过:本来以为android本身提供的API已经封装的够好了,根本不需要什么ORM框架了,但是在使用了litepal后,我感觉使用ORM框架还是很有必要的,下面是我对ORM和android API的几点看法:1、做为API级别, android只能广义封装,而不能特定去封装一个API,所以android 对sql
2015-01-15 09:15:50 3991 10
原创 仿QQ侧滑删除ListView——2015第一博
一直感觉QQ最近联系人那个侧滑删除功能挺高大上的,经过几经波折,终于在新的一年里实现了该功能。实现这个功能真是费了老劲了,好几次有了想法,兴奋的去写代码实现,结果让代码打了自己一个耳光,最终还是用margin的方式实现了这种效果,好吧, 先上效果!看完效果,就来说一下思路吧:1、item的左右滑动效果我是用的magin实现的。2、虽然item布局
2015-01-06 09:47:14 4454 4
原创 回首2014,展望2015
一、回首20142014年,对我还说还真算的上不同寻常的一年, 因为就在1多月以前,我光荣的从学生晋升为程序员[此处应该有掌声]。回望一下2014这一年吧, 恩,这一年应该是我真正开始android开发的一年,还记得做的第一个成形的软件是一个签到程序,从android到php,自己一个人搞定,当时心里还是美滋滋的,当然,最后也得到了老师的认可。再后来,在学校参加了一个比赛,和同学一块做
2014-12-31 20:37:47 2386 2
原创 Android联动ListView的实现
今天带来的是两列并排ListView关联滑动,这里面有两个知识点:1、两个ListView如何并列显示。2、如何关联滑动。第一个问题,好像我之前的博客提到过,就是让ListView的width有wrap_content的能力,可以参考我的另一篇博客《并排ListView——仿京东分类列表》。今天的重点在第二个问题上,如何让两个ListView联动起来。虽然,重点在第二个问题上,但是,任
2014-12-22 21:05:58 5669 2
原创 Android5.0之Palette简单实用
一直想学学android5.0的新特性,但是由于模拟器的原因,一直没有了却这个心愿。今天是个悲剧的一天,但不是有那么一句老话吗“塞翁失马,焉知非福”。先说说今天吧, 不知道咋回事,genymotion数据全丢失了,没办法,只能重新下载新的数据,就是在选择版本的过程中,突然发现了5.0, 好激动,赶快下载下来体验一把。
2014-12-21 20:54:50 4272
原创 打造史上最容易使用的Tab指示符——Indicator
如果你还不知道什么是Tab指示符,相信在你看过网易新闻的这效果后,一定会豁然开朗:‘就是导航栏下面那个红色的长条,今天我们也来实现一下这效果。。。我们的代码很简单,而且很容易使用,初步统计,一行代码就可以使用这样的indicator。恩,我项目在还没加这个效果之前用了一个LinearLayout,里面的多个item代码多个tab,那如何添加Indicator呢? 我选择了重写Lin
2014-12-20 21:22:38 14536 26
原创 android实现discuz论坛的登录
今天工作中遇到的一个问题,需求是这样的,需要给dz的论坛做一个android扩展,这肯定少不了会员登录,就得需要二次开发dz提供一个登录接口,眩晕中。。。因为我对dz不熟悉,所以这个工作对我来说还是有难度的。仔细分析了一下,在android上为什么需要客户端登录? 答案是肯定的,就是为了获取能唯一标识该用户的信息——uid,其实登录的目的就是这么单纯(提供接口不也是给客户端一个uid嘛)。
2014-12-16 20:47:44 3743
CoordinatorLayout自定义Behavior
2015-12-14
自己动手做StickyHeaderListView
2015-11-19
FontAwesome-用TextView显示图片
2015-09-23
ListView底部item飞入动画效果
2015-09-14
android官方数据绑定框架DataBinding使用(2)
2015-08-17
android官方数据绑定框架DataBinding使用
2015-08-10
android notifyDataSetChanged实现
2015-06-07
CSDN博客android客户端
2014-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人