
android
文章平均质量分 90
Qibin01
人不会死在绝境,却往往栽在十字路口
展开
-
当模块化遇上多渠道
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。最近在研究Android模块化开发的一些东西, 网上大多数模块化的文章都是仅仅从一个demo的角度去看待的, 其实对于在真实项目中使用还有很多坑需要去踩, 今天就来聊聊我在模块化探索过程中遇到的众多坑中的一个-多渠道.传统多渠道说道多渠道, 其实大部分开发者都会在项目中使用到, 例如按照Google Play,原创 2017-05-07 00:50:33 · 12247 阅读 · 8 评论 -
Android MVP框架MVPro的使用和源码分析
最近看了两篇关于Android实现MVP的文章一种在android中实现MVP模式的新思路和用MVP架构开发Android应用。 两篇文章的思路都是一样的,即把Activity、Fragment作为Presenter,这种方式不同于现在主流的MVP方式,不过它很好的解决了Activity生命周期带来的问题,而且我认为它让MVP的实现更加轻松了。那么问题来了,这么好的思路,我们怎么可以不去实现一下自原创 2015-11-23 11:37:24 · 13063 阅读 · 10 评论 -
Android Material Design动画
最近在看一些关于Material Design的东西,还记得在博客《你所不知道的Activity转场动画——ActivityOptions》中,我们介绍了一种优雅的activity过度动画。如果大家看了最后给出的参考链接,会发现还有很多内容是值得我们学习的,所以这篇博客,我们来学习一下这一页上剩下的东西。一、触摸反馈大家都知道,在Material Design中,触摸反馈的效果非常绚丽,是原创 2015-10-12 09:01:08 · 14743 阅读 · 7 评论 -
Android自定义View—仿雷达扫描效果
最近在翻以前写的代码,翻到几个月以前做的一个仿雷达扫描的效果,现在拿出来和大家分享一下,在进入分析和代码之前,我们先来看看效果吧,…录屏质量较差,凑活着看吧。看到这样的效果,肯定是用自定义view的方式去实现的。通过观察效果,我们先来列一列要用的知识吧。整个过程是一个不断绘制的过程,所以我们需要一个Handler。核心的效果是一个扇形,所以我们还需要会绘制扇形。绘制的扇形的颜色有一个梯度变化的原创 2015-09-21 08:48:33 · 14358 阅读 · 14 评论 -
Android封装支付宝支付
在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装。 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用。原创 2015-10-05 10:54:07 · 8363 阅读 · 6 评论 -
View测量机制详解—从DecorView说起
绪很多朋友都沉迷于自定义View, 而自定义View离不开measure、layout、draw三个步骤,在测量方面,很多朋友仅仅是知道怎么去测量一个控件,而对于为什么要这么做等等问题都搞的不是很清楚,今天这篇文章我们就从View树的最顶层DecorView开始分析测量到底是怎么一回事。 这篇文章要解决的问题有: onMeasure的两个参数从哪来。 最开始的参数是怎么计算出来的。原创 2015-10-19 08:36:30 · 8037 阅读 · 1 评论 -
不需要ViewInject,简化你的findViewById
这篇博客会非常非常短,大家在写代码的时候可能烦透了写 findViewById, 我也是, 这时大家可能会去选用一些利用注解写的ViewInject 去简化这个操作, 可是… 我非常不喜欢ViewInject。这时,我就想着自己去实现一下简化findViewById,简化后怎么用呢?看下面的代码,TextView textView = V.f(this, R.id.textView);Image原创 2015-09-15 18:02:31 · 4583 阅读 · 0 评论 -
ListView底部item飞入动画效果
最近有朋友展示了一种效果,就是ListView在滑动的过程中新加入的item会有一个从底部滑入的效果,我感觉这种效果还算不错,就去想了想拿到我身上应该怎么去实现这种效果,在试过几种方案后,最后选择了一种使用起来还算比较简单的方式拿出来分享一下。 在开始分享之前,先来看看我们需要做成什么效果吧,恩,看到什么效果了吗?仔细看滑动过程中的底部,新加入的item会以一种动画的形式加入,马上,我们就来实现这原创 2015-09-14 08:52:55 · 8349 阅读 · 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 · 13039 阅读 · 3 评论 -
RecyclerView+ImageLoader打造多选图库
在上一篇博客《Universal-ImageLoader源码解析》中,我们从源码的角度分析了ImageLoader,这篇博客我们就开始结合RecyclerView和ImageLoader打造一个图片系统。需求在我的项目中有一个多图选择的需求,但是系统的图库只能选择一张图片,所以我们只能自己来做一个简单的图片。利用RecyclerView和ImageLoader可以很轻松的实现这个功能,下面我们先来看原创 2015-09-07 08:50:36 · 6433 阅读 · 9 评论 -
Universal-ImageLoader源码解析
在我们项目中肯定会用到一些第三方的library,有网络框架,图片处理框架等。而我现在常用的就是volley和ImageLoader了,上上篇博客我们把Volley的代码分析了一下,今天我们就来拿一个常用的图片框架——UniversalImageLoader来分析一下。如何去看源码?我一般都是从公开的使用方法介入,对于今天我们要看的ImageLoader当然就是,ImageLoader.displa原创 2015-09-05 08:54:08 · 5271 阅读 · 4 评论 -
RecyclerView的高级用法——定制动画
相信大家都对RecyclerView的用法相当熟悉了,RecyclerView的出现给我们开发者提供了一个高扩展的控件, 不管是列表、网格、瀑布流,一个控件就可以搞定,而且神奇的是只需要修改一行代码,就可以轻松切换。RecyclerView的好处太多太多,就不一一列举了,网上也有很多关于RecyclerView的教程。说到这里,我们就开始进入主题了,虽然网上有那么多的RecyclerView教程,原创 2015-08-03 08:29:32 · 27612 阅读 · 13 评论 -
Android官方数据绑定框架DataBinding(二)
继续上篇的博客《Android官方数据绑定框架DataBinding(一)》我们继续学习Data Binding的使用。十、inflate 不知道大家注意没有,上面的代码我们都是在activity中通过DataBindingUtil.setContentView来加载的布局的,现在有个问题了,如果我们是在Fragment中使用呢?Fragment没有setContentView怎么办?不要着急,D原创 2015-08-17 08:47:55 · 16463 阅读 · 7 评论 -
你所不知道的Activity转场动画——ActivityOptions
相信大家对于Activity的过度动画都很熟悉了,一般情况下我们直接使用overridePendingTransition(enterAnim, exitAnim);但是这种老旧、生硬的方式怎么能适合我们的MD风格的App呢!好在google在新的sdk中给我们提供了另外一种Activity的过度动画——ActivityOptions。并且提供了兼容包——ActivityOptionsCompat。原创 2015-08-31 08:54:42 · 43535 阅读 · 16 评论 -
打造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 · 4069 阅读 · 10 评论 -
在Android加入和使用Realm
原文链接:Up and Running With Realm for Android介绍如果你比较关心android开发的最新动态的话,那么你肯定会听说过Realm,Realm是一个轻量级的数据库,在Android开发中,它可以替代SQLite和ORM框架。和SQLite相比,Realm速度更快并且它有很多先进的特性,例如对JSON的支持,流畅的API,数据变化通知(观察者),加密支持… 所有的这一翻译 2015-11-18 13:04:19 · 16066 阅读 · 2 评论 -
ListView添加动态悬浮header的另类方式
今天看了一篇文章是搞ListView动态悬浮header的, 我又结合了WheelView的item的绘制方式,最终终于有了这篇博客,在讲解实现方式之前,我们先来看看要实现的效果。要实现这种效果有很多方式,普通的布局, 给ListView添加header都ok,而且也有很简单,不过现在我们不打算这么做。记得在看WheelView的时候,他的View里竟然有一个ViewGroup,当时感觉好神奇,这玩原创 2015-11-19 12:53:11 · 8977 阅读 · 2 评论 -
CoordinatorLayout高级用法-自定义Behavior
在新的support design中,CoordinatorLayout可以说是最重要的一个控件了,CoordinatorLayout给我们带来了一种新的事件的处理方式——behavior,你是不是还记得我们在使用CoordinatorLayout的时候,一些子view需要一段,app:layout_behavior="@string/appbar_scrolling_view_behavio原创 2015-12-14 09:40:40 · 36450 阅读 · 19 评论 -
Android路由实现
前几个月有幸参加了优快云组织的MDCC移动开发者大会, 一天下来我最大的收获就是了解到了模块化开发, 回来之后我就一直在思考模块化的一些优点, 不说别的, 提供一种可插拔的开发方式就足够我们兴奋一会了~ 接下来自己开始尝试了一些小demo, 发现在模块化开发中最大的问题就是组件间通讯原创 2016-11-28 07:55:06 · 28511 阅读 · 45 评论 -
来仿一仿retrofit
为什么要重复造轮子在开发领域有一句很流行的话就是不要重复造轮子, 因为我们在开发中用到的很多东西早已有很多人去实现了, 而且这些实现都是经过时间和开发者检验过的, 一般不会遇到什么坑, 而如果我们自己去实现的话, 那不仅会增加工作量, 最大的隐患还是我们并不能预见以后是否会遇到大坑. 不过大家注意了吗. 上面不要重复造轮子的一个前提是开发中, 是的, 这句名言在开发中是适用的, 那在学习阶段的?原创 2016-07-25 00:35:53 · 11966 阅读 · 3 评论 -
是时候来了解android7了:通知直接回复
这是<是时候来了解android7>系列的第三篇文章了, 前面两篇分别介绍了多窗口模式和shortcut功能, 今天我们来点简单的, 说一说通知直接回复功能. 可能很多朋友还没有机会接触到android7的新特性, 所以在开始之前,先来介绍一下什么是通知直接回复, 拿短信应用来说吧, 在之前我们接收到一条新短信是原创 2016-12-26 00:37:19 · 11187 阅读 · 13 评论 -
Android自定义Transition动画
曾经(或者现在)很多人说起Android和iOS都会拿Android的UI设计来开黑, “你看看人家iOS的设计, 再来看看Android的, 差距怎么就这么大呢?”, 对于这种说辞, 可以一句话来总结一下”他们还停留在4.X之前的时代”. 自从Android5.0推出Material Design设计规范后, Android在设计上早已甩那个万年不变的iOS好几十条街!以上纯属个人看法, 请勿开黑原创 2016-11-21 00:10:43 · 18834 阅读 · 17 评论 -
是时候来了解android7了:shortcuts(快捷方式)
就在前几天的一个晚上, Google召开了它的秋季发布会, 毫无悬念的宣布了它的最新手机品牌Pixel, 与此同时我的nexus设备也从亲儿子降级成为干儿子. 不过还好Google并没有对这一干一亲区别对待, 这不, 今天就推送了android7.1.1的更新, 随之而来的又是一大波新特性(又有我们开发者忙的了…), 这其中一个叫作Shortcuts的功能真的是太赞了, 利用这个功能以后我们就再也不原创 2016-10-21 00:33:34 · 54712 阅读 · 38 评论 -
RecyclerView自定义LayoutManager,打造不规则布局
RecyclerView的时代自从google推出了RecyclerView这个控件, 铺天盖地的一顿叫好, 开发者们也都逐渐从ListView,GridView等控件上转移到了RecyclerView上, 那为什么RecyclerView这么受开发者的青睐呢? 一个主要的原因它的高灵活性, 我们可以自定义点击事件, 随意切换显示方式, 自定义item动画, 甚至连它的布局方式我们都可以自定义.吐吐原创 2016-09-27 01:19:06 · 44812 阅读 · 25 评论 -
FontAwesome-用TextView显示图片
在Android项目开发中,图片可谓是必不可少的一部分,这时我们可能会去看许多图片的适配方案,例如,根据不同分辨率来提供多套图什么的…这篇文章并不是去介绍如何去做图片的适配,而是介绍一个略屌的字体库,利用该字体库,我们可以用TextView的形式去显示图片,而且我们还可以用android:textSize随意改变图片的大小! 听起来是不是有点小激动了,不要着急,因为它只是一个字体库,所以使用起来非原创 2015-09-23 08:57:59 · 6137 阅读 · 10 评论 -
是时候来了解android7了:多窗口支持
这篇文章开始, 我们来了解一下android 7的一些新特性, 话说今年android 7预览版本来的比以往都稍早一些, 这样对于我们开发者来说算是一个好消息, 我们可以有充足的时间来看新版android的一些特性, 让我们的应用更快的支持到android 7. 前段时间android 7发送了最终预览版本, 这原创 2016-08-22 01:17:59 · 19215 阅读 · 14 评论 -
打造Material Design风格的TabBar
自从Material Design问世以来, 各种Material Design风格的控件层出不穷, 尤其是google家的几个APP更是将Material Design应用到了极致. 最近在使用google photos的时候发现这款软件的Tabbar做的非常不错, 内容突出, Material Design风味很浓, 再者, 我还没有做过一个Material Design风格的Tabbar, 所原创 2016-05-08 18:23:12 · 16681 阅读 · 3 评论 -
Android Bottom Sheet详解
最近android更新了support library, 版本到了23.2, 从官方blog中我们还是可以看到几个令人心动的特性的,例如夜间模式的支持,BottomSheet.今天我们就来介绍一下这个Bottom Sheet,这可能会给我们开发中需要的一些效果带来便利.虽然这里我们准备用整整一篇博客的时间来介绍它,不过这东西使用起来太简单了也太方便了,这还要感谢Behavior机制的引入,我记得在博原创 2016-03-28 23:23:45 · 37534 阅读 · 31 评论 -
ubuntu下安装AndroidStudio
最近将电脑的操作系统换成了ubuntu,对于不习惯win8/win10的人来说ubuntu确实是一个不错的选择,基本的软件都ok了,至于QQ什么的,大家可以去找wine版的,或者直接下载一个叫CrossOver的软件进行wine安装.新的操作系统我们就需要一系列的环境搭配,首先对于我们android开发者来说就是android环境了. 就在昨天,AndroidStudio的preview版更新到原创 2016-02-27 14:39:28 · 23674 阅读 · 19 评论 -
网络框架AndNet—解放你的时间
吐槽我们做移动开发的,网络操作可以说是最最常用的技术了,而在网络操作中http又是一块最常见的的方式,返回json的http请求可以说是我们日常最长干的活。你一般用什么框架去请求http呢?Volley?OkHttp? 不管哪种方式用起来是不是还是不那么的方便,我们依然要写大量的请求、解析、返回的代码。好,这篇博客,不是让你替换掉你最常用的那个网络框架,而是在你熟悉的框架之上二次封装!目的就是为了解原创 2015-12-01 11:27:08 · 8264 阅读 · 3 评论 -
源码看CoordinatorLayout.Behavior原理
在上一篇博客CoordinatorLayout高级用法-自定义Behavior中,我们介绍了如何去自定义一个CoordinatorLayout的Behavior,通过文章也可以看出Behavior在CoordinatorLayout中地位是相当高的,那么今天我们就来接着上篇博客来从源码分析一下Behavior的实现思路,如果你对CoordinatorLayout和Behavior还不熟悉的话,建议先原创 2015-12-22 09:00:30 · 16377 阅读 · 10 评论 -
RecyclerView添加Header的正确方式
看了一下博客目录,已经有好几篇博客是关于RecyclerView的,不过对于这么一款强大的控件,我还是要再写一篇博客来学习一下,这篇博客的主题是《为RecyclerView添加header》,当然在看完这篇博客后,相信添加Footer你也应该能够学会。话说在这么多新控件中为何RecyclerView备受开发者的喜爱?这还是因为在Android发展到今天基本上还没有像RecyclerView这么灵活的原创 2015-11-08 10:12:49 · 72638 阅读 · 51 评论 -
AndroidSupportDesign之TabLayout使用详解
在上一篇博客《高逼格UI-ASD(Android Support Design)》中,我们大体的对TabLayout进行了一些初步的了解,这篇博客,单独拿出TabLayout来继续讲解是因为:纵观Android Support Design库的几个控件,除了诸如:FAB、SnackBar等几个小控件常用以外,也就TabLayout还ok了,其他的例如CollapsingToolbarLayout,这原创 2015-07-23 08:56:05 · 21151 阅读 · 9 评论 -
Volley源码解析
人人都说Volley写的非常优秀,今天我们就打开volley的源码,来看看volley是怎么实现网络请求的,首先,我们从刚开始使用入手mRequestQueue = Volley.newRequestQueue(App.getInstance());跟进代码,Volley.newRequestQueue,public static RequestQueue newRequestQueue(Conte原创 2015-08-26 15:09:56 · 6546 阅读 · 7 评论 -
打造史上最容易使用的Tab指示符——Indicator
如果你还不知道什么是Tab指示符,相信在你看过网易新闻的这效果后,一定会豁然开朗:‘就是导航栏下面那个红色的长条,今天我们也来实现一下这效果。。。我们的代码很简单,而且很容易使用,初步统计,一行代码就可以使用这样的indicator。恩,我项目在还没加这个效果之前用了一个LinearLayout,里面的多个item代码多个tab,那如何添加Indicator呢? 我选择了重写Lin原创 2014-12-20 21:22:38 · 14679 阅读 · 26 评论 -
打造android ORM框架opendroid(二)——自动创建数据库
在上一篇博客《打造android ORM框架opendroid(一)——ORM框架的使用》中相信你已经了解了opendroid的使用,那么从这篇博客开始,我们正式进入opendroid的源码分析,打造一款自己的ORM框架!在正式开始之前,你需要保证手里有一份opendroid的源码,如果还没下载opendroid,请到http://git.oschina.net/qibin/OpenDroid原创 2015-01-16 09:57:17 · 2882 阅读 · 8 评论 -
并排ListView——仿京东分类列表
无意间看到京东的分类列表做的非常炫, 是那种横排列表的形式,本来是想截图上来的,但是公司没找到数据线。。。。好吧,今天我们也来实现个这种效果。 这次我选择的ListView,但是ListView默认是横向铺满屏的,怎么做到并排呢? 重写!!!虽然京东的没法截图了,但是我自己做的效果可以在模拟器上运行,先来看看效果吧,界面有点丑,没关系,对吧? 我们主要研究的是如何实现这种框架,而不是界面本身。原创 2014-12-06 15:57:58 · 7228 阅读 · 5 评论 -
打造android ORM框架opendroid(六)——级联查询
在上一篇博客《打造android ORM框架opendroid(五)——数据更新的实现》 我们介绍了opendroid数据更新的流程,也就在上次,我们OpenDroid类中的所有操作都介绍完了, 那查询操作呢?不是在OpenDroid中?查询操作是在OpenDroid中,不过是以内部类的形式呈现的。还是来看看如果使用opendroid查询数据吧。OpenDroid.query.find(原创 2015-02-01 10:18:22 · 2209 阅读 · 0 评论 -
Android联动ListView的实现
今天带来的是两列并排ListView关联滑动,这里面有两个知识点:1、两个ListView如何并列显示。2、如何关联滑动。第一个问题,好像我之前的博客提到过,就是让ListView的width有wrap_content的能力,可以参考我的另一篇博客《并排ListView——仿京东分类列表》。今天的重点在第二个问题上,如何让两个ListView联动起来。虽然,重点在第二个问题上,但是,任原创 2014-12-22 21:05:58 · 5760 阅读 · 2 评论 -
Android5.0之Palette简单实用
一直想学学android5.0的新特性,但是由于模拟器的原因,一直没有了却这个心愿。今天是个悲剧的一天,但不是有那么一句老话吗“塞翁失马,焉知非福”。先说说今天吧, 不知道咋回事,genymotion数据全丢失了,没办法,只能重新下载新的数据,就是在选择版本的过程中,突然发现了5.0, 好激动,赶快下载下来体验一把。原创 2014-12-21 20:54:50 · 4376 阅读 · 0 评论