android code
文章平均质量分 92
soullines
只若初见
展开
-
图片的预览处理----多点触控放缩/双击放大缩小/viewPager冲突解决
在android中,多点触控和双击图片很常用,比如朋友圈点击图片放大兼具手势点击滑动等;当然也有不少第三方来支持这些 比如:phtotView等;下面来实现一个自己实现的多点操作的图片预览,老规矩 先上图来展示效果:由于是截取模拟器的gif 所以没有显示多点触控 的手势操作 但是手机上完全支持这些操作: 1.手势多点放缩,且会有最大和最小的限制; 2.双击放大缩小 3.在放大时原创 2017-08-24 20:38:14 · 1208 阅读 · 1 评论 -
Java/Android设计模式<三> 代理模式
代理模式在我看来是android中最常见,比较重要的一个设计模式;代理模式实际上就是设置了一个新的对象(中介),也可以理解为真实对象的替身;1.代理模式的组成://抽象主题 真实主题和代理主题的共同继承的接口public interface Subject { void operation();}//真实主题public class RealSubject implements Subjec原创 2017-09-20 14:02:57 · 830 阅读 · 0 评论 -
RXJava从入门到熟练
一直以来,android开发者对于RxJava一直褒贬不一,有的人说RxJava好用,有人说不好用;但是作为一个有经验的开发者,RxJava的出现无疑是一个里程碑,RxJava其实还是很好用的;那么 RxJava到底是什么呢?在github主页上有这样介绍:RxJava is a Java VM implementation of Reactive Extensions: a library for原创 2017-09-15 13:48:08 · 733 阅读 · 0 评论 -
GreenDao的基本使用(android数据库)
在android中,在有些数据量相对较大或者处于安全考虑的情况下,会使用android自带的数据库—-sqlite: 但是使用sqlite需要考虑到以下几点: 1.严格控制数据库资源的打开与关闭(db,cursor); 2.在遍历数据时候取到的是cursor要转化为list再使用 3.事务回滚,可以大大优化数据库的效率;在android开发中我们会遇到一些数据库,内部框架做原创 2017-11-01 18:51:38 · 756 阅读 · 0 评论 -
android中常用5种排序算法
在android中会经常使用一些算法来实现一些复杂的逻辑; 在这片博文中主要介绍五种算法: 1.选择排序; 2.插入排序; 3.快速排序; 4.合并排序; 5.堆排序;在看下面之前,需要注意:有的算法语言表述比较乏力,在看下面博文时候要注意力在代码之上以下代码亲测可用;1.选择排序从数组一端选择一个数组中的一个元素,通过比较对比取出最小值(或者最大值)放在a原创 2017-09-26 11:45:47 · 6605 阅读 · 0 评论 -
Android ListView与RecyclerView对比浅析--缓存机制
一,背景RecyclerView是谷歌官方出的一个用于大量数据展示的新控件,可以用来代替传统的ListView,更加强大和灵活。最近,自己负责的业务,也遇到这样的一个问题,关于是否要将ListView替换为RecyclerView?秉承着实事求是的作风,弄清楚RecyclerView是否有足够的吸引力替换掉ListView,我从性能这一角度出发,研究RecyclerView和ListView二转载 2017-10-26 14:44:31 · 544 阅读 · 1 评论 -
android Ipc----Binder<Aldl>源码分析
在android中进程与之间的通信最常用的是基于binder的Aldl(在ALDL中进行了一部分封装),所以使用起来比较方便首先来粘贴自己写的一个aidl的demo ,基于此进行源码的探究: 首先在android中service—-client之间的通信ok 下面 来看代码 :Service:Book.aidl:// Book.aidlpackage com.原创 2018-01-11 23:38:19 · 333 阅读 · 0 评论 -
android中属性动画---ValueAnimator源码探究
在android中特效的展示会用到各种各样的属性动画,所以下面来看下android中属性动画的源码,其实在我看来源码是熟悉api和实现相关代码最直接最有效以及最深刻的途径,废话不多说,进入正题:因为ObjectAnimator是继承自ValueAnimator,会有一些方法的使用覆盖,所以我们先来看ValueAnimatorValueAnimator首先 ValueAnimato原创 2018-01-30 19:23:41 · 596 阅读 · 0 评论 -
Fresco的使用:重而多能的android 图片框架:
Frsco是facebook推出的android 图片框架,相对于glide,imageLoader而言具有更加完备的生态,但是介于其较其他图片框架中,在非以图片展示为主的application,这里并不建议用;但是不得不说Fresco是一个优秀的图片框架; Fresco官网地址:https://github.com/facebook/fresco1. 代码依赖de...原创 2018-06-11 14:50:22 · 356 阅读 · 0 评论 -
java泛型:擦除/桥方法/协变(不要在新代码中使用原生态类型) ---- effective java notes
在java中,声明一个或者多个类型参数的类或者接口就是泛型;泛型是java 1.5之后出现的,在我看来比较划时代,一部分java 开发者会体会到,无论在表述还是安全性的方面,泛型的出现解决了Object的尴尬;泛型的使用域比较广,这里不做赘述,主要围绕 协变 , 擦除 , 桥 进行解释1.泛型优于原生态类型泛型是指明类型,或者使用?作为无限通配符的类或者接口,如:...原创 2018-06-07 15:39:52 · 488 阅读 · 1 评论 -
android studio 编译:Could not find common.jar (android.arch.core:common:1.0.0)
在编译android studio时候会出现这样的bug:Error:Could not resolve all files for configuration ':androidsort:debugCompileClasspath'.&gt; Could not find common.jar (android.arch.core:common:1.0.0). Searched i...原创 2018-06-08 15:21:23 · 1455 阅读 · 0 评论 -
Okhttp3使用 + 源码完全解析
在使用过okhttp3之后,必然的一步当是对源码的研究 这样可以对其优劣和功能封装有一个全面详尽的了解 ok 下面粘贴okhttp3的核心代码(url暂时随意定义) OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url原创 2017-09-21 20:09:02 · 2397 阅读 · 0 评论 -
android中带索引的列表-----索引的高级使用
在Android中索引无处不在 比如通讯录 方便检索信息的展示页等 下面来介绍一个带索引检索的简约实用的list,首先来看效果图: 由于csdn 上传gif限制 图片略失真; 在这个demo中主要实现了如下功能: 1.在listView快速滑动时 检索索引在右侧出现,当滑动结束 ,不触摸索引条,3s后 索引渐变消失 2原创 2017-08-17 20:22:36 · 3241 阅读 · 2 评论 -
android局部更新(RecyclerView+ DiffUtil)
在android中listView/RecyclerView是最常用的ui控件,最常见的交互多是list的刷新,刷新和加载的交互涉及到adapter的刷新----即notifyDataSetChanged()全局刷新 但是notifychaged有一些不可避免的弊端: 1.不会触发 RecyclerView 的局部更新的动画。 2.性能低,会刷新整个 RecyclerView原创 2017-08-21 22:12:39 · 4233 阅读 · 0 评论 -
Android中重复执行动画bug
在android中我们要经常用到看似一个没有时间限制的重复动画,如最常见的下拉刷新和上拉加载更多的loading加载动画: 今天尝试了三种动画(以旋转为例):package com.example.anim.anim;import android.animation.Animator;import android.animation.ObjectAnimator;import andro原创 2017-08-15 16:07:42 · 6475 阅读 · 1 评论 -
android富文本 加载带图片的html<drawable为null的bug>
textView加载带图片的html 在android中textView中setText中加入富文本以及webView嵌入url是android交互html最简单的两种方式; 最近在项目中涉及到富文本; 当不考虑html中图片加载时候比较简单:Spanned spanned = = Html.fromHtml(html);tvContent.setText(spanne原创 2017-07-21 17:36:31 · 7312 阅读 · 4 评论 -
手机主流适配
手机主流适配 在android中设配一直是程序员最头疼的一个问题,那么问题来了,web前端不需要么-----的确不需要,web前端一般是百分比适配; ok~接下来详细介绍一下: 首先在android的layout中不可以使用px,因为不同的机型,用相同的px,dp值会不同,进而会造成布局的不同;影响极大.1.图片适配 在res下drawable创建不同的drawable原创 2017-07-04 00:01:51 · 2092 阅读 · 1 评论 -
android中的懒加载机制
android中lazyLoad 在android的项目开发过程中viewPager的使用很频繁;但是viewPager特殊的预加载机制导致viewPager的网络请求会有异常;即当前页面加载过程中,不可见的预加载页面也会走网络请求,由于android中ui加载页面有生命周期,不可见的预加载页面网络请求揍不到相关的生命周期有时候会导致加载框持续加载,ui无法bind数据; 下面添加代码原创 2017-06-22 10:18:39 · 2907 阅读 · 0 评论 -
Java/Android设计模式<二>观察者模式
在android中观察者模式比较常见比如eventBus Rxjava等 也都是观察者模式;下面来介绍一下观察者模式:1.观察者模式简单介绍:在android中观察者模式分为观察者和被观察者两部分:观察者:就是Observer;在rxjava中被称为Sucscriber; 被观察者:就是Observ’a’bvable,有时候会被称为主题:Sububject;一般情况下被观察者会通知观察者跟新;从原创 2017-08-29 10:09:19 · 521 阅读 · 0 评论 -
Dagger2 使用+原理解析
java作为面向对象的编程语言,较低耦合度无疑可以提高代码的复用和维护; 今天来介绍一个依赖动态注入解耦的神奇dagger2(最常用的场景mvp+rxjava+dagger2)1.dagger2–简单介绍首先dagger2是利用apt变成在rebuild时候 相应注解类生成对应的factory工厂类来实现动态注射;在dagger2中核心就是注解: @Inject:动态注入 多用于成员的初始化原创 2017-08-30 19:39:16 · 720 阅读 · 0 评论 -
Android--MVP+Retrofit+Rxjava的实现
这一片博文 主要着眼于mvp框架和retrofit+rxjava的配合;以一个简单实例来实现用户的登录;首先来看效果图: 重要的是功能,界面较为简单: 1.Mvp 实现login的总体框架 2.网络请求为 retrofit ,实现多层次封装 3.retrofit的请求和响应使用 rxjava 来实现在看代码之前首先来看项目的整体架构: 作为业务逻辑和业务模型的model层 不仅仅可以放置j原创 2017-08-29 19:29:58 · 1381 阅读 · 1 评论 -
android开发进阶图谱
挺全的一个脑图 期待进步原创 2017-08-31 10:58:55 · 290 阅读 · 0 评论 -
深入浅出--Rxjava源码分析<一>
在之前的博客中简单介绍了Rxjava的使用和与Retrofit的API配合使用;那么在这里我们来看下Rxjava的源码;1.Observable–>(subscribe)Subscriber首先来看完整代码:Observable.create(new Observable.OnSubscribe<Drawable>() { @Override publ原创 2017-09-18 19:50:10 · 647 阅读 · 0 评论 -
Android组件化 -- 完全解耦实践方案
首先粘贴源码地址,欢迎frok,欢迎start源码地址目前,Android 组件化普遍使用于移动开发,但是组件化的初衷是为了解耦代码,并行开发效率;小型app似乎会care不到,完全解耦的组件化会在app越来越臃肿的时候带来很大的提升;####1.组件化介绍ok,那么我们需要知道完全解耦的组件化框架应该注意哪些点:主app只加载业务组件,不可调用组件;组件与组件之间不存在调用关系;...原创 2018-11-07 16:15:29 · 4727 阅读 · 2 评论