自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

北京流年

业精于勤,荒于嬉.行成于思,毁于随

原创 android自定义view之星星动画

先上效果图 其实上边效果分为几个部分,一个部分是多个小星星四处扩散,第二个部分是一个小星星从小变大,还有一个是实心圆的动画。 代码如下 第一:所有的小星星动画 public class StarView extends View { private Paint mPaint; ...

2019-09-26 11:56:01 150 0

原创 android设计模式之适配器模式

早期使用listview的时候,就需要设置adapter,但是当时一直不明白为何要叫adapter?而且也觉得我们自己设置布局,我们自己绑定数据,就能显示到列表上,觉得写的很神奇。直到后来有人跟我说了适配器模式。我才渐渐明白… 定义 将一个类的接口,转变为客户希望的另外一个类的接口。适配器模式...

2018-12-28 22:04:41 88 0

原创 android 自定义view缩小放大拖动小人

效果图如下: 刚开始产品说要做这个效果的时候,一脸懵逼,光是围绕屏幕中心原点动态添加view就让人头疼。况且还要进行缩放和拖动,小人头上还有个标志位,然后百度找缩放的例子,找了一圈之后,慢慢的发现效果图需要用到的几个技术点不过是如下 1:如何对所有的view进行缩放? 2:对view...

2018-07-01 11:33:11 2547 0

原创 android 自定义view之掷骰子小人走动的游戏

最近产品经理出了一个幺蛾子,说要通过一个小游戏来吸引用户获取奖励,当时过需求的时候,内心何止是一万个草泥马奔腾而过,简直是一亿个草泥马。过需求之后就冷静下来讨论该怎么实现,做完之后发现,其实也没有那么难!总的效果如下:因为csnd上传最大不能超过2M所以把gif图放到github上了效果图仔细分析...

2018-06-10 12:29:20 1292 0

原创 android 仿照支付宝蚂蚁森林

本文在大神的基础上添加了修改了一些功能 先说下思路 1.如何让小球不重叠分布? 2.小球上下移动这个可以具体看原文作者分析 本文主要分析第一点 刚开始想法是,每次随机生成一个x,y位置,但是这保证不了小球重叠的问题。 然后受到原文作者启发,其实我们可以固定前面6个小球的位置,让它们...

2018-05-13 12:11:06 3425 0

原创 android 最简单的饼状图

录制的gif图有点渣,但是实际效果还是可以的。 因为项目需要绘制饼状图,就很简单的饼状图带一个选中的效果,本来也想使用MPAndroidChart这个库的,但是觉得就实现一个效果引用整个库,对于一个有态度的程序员来说,内心是拒绝的(我不是装逼的人),所以自己自定义了一个,写的不好仅供参考。 要...

2018-03-20 18:07:47 3469 3

原创 android 枚举性能问题

面试题:都说枚举性能不好,不好在哪里?现在有什么优化的方案如何解决的? 首先我们可能要了解一下枚举,以前看性能优化的文章,都说不要使用枚举,因为枚举占用内存大,占用apk空间大,但是一直也不知道原因。 1 09年谷歌官方视频有说,使用枚举会让apk比原来要大大约13倍的空间。 有人可能会有疑问,...

2019-12-28 17:01:22 33 0

原创 Glide使用之工厂方法模式(ModelLoader/DataFetcher)

一直想解析一下Glide框架,奈何这个框架太强大,最近看了一段时间,总算是摸到一点边,现在再回过头来想郭神花了半年时间才把这个框架看明白,对这类人真是膜拜。 最近在学习工厂方法模式,这里先对工厂方法模式做下介绍 定义: 提供一个创建对象的接口,让子类决定实例化哪一个类。也就是说将实例化延迟到子...

2019-12-23 21:23:38 101 0

转载 SSL peer shut down incorrectly

当我们项目中出现标题这种错误的时候,常规操作就是clean一下工程,然后再重新Sync一下,后边发现还是不好使,一般的原因是有一些jar包下载不下来,翻墙也下载不下来,这个时候就要使用一下镜像了。具体操作如下 buildscript { repositories { // 第一个地方 ...

2019-11-01 11:55:11 138 0

原创 Error:Program type already present:android.R$mipmap解决方案

当我们程序报上边的错的时候,我们总以为是mipmap冲突了,所以一直找mipmap文件看看哪些冲突了,其实并不是mipmap问题。 这类的错误还有比如说报 Error:Program type already present:android.RcolorError:Programtypealrea...

2019-11-01 10:08:06 147 0

原创 Android单例模式总结

定义 保证一个类只有一个实例,并提供一个全局访问点 具体写法 单例模式一般分为两种形式,第一种是饿汉式,第二种是懒汉式。(当然有很多其他的博客或者书写的说,单例模式还分为其他的什么枚举啊等形式,但是我们这里只讲主流的,也就是我们项目中用的最多的两种形式) 我们先来看看第一种饿汉式 public c...

2019-10-16 14:17:04 39 0

原创 记录一个常用类用来获取mac地址的

public class MacUtil { private static final String marshmallowMacAddress = "02:00:00:00:00:00"; private static final String fileAd...

2019-09-18 11:09:43 144 0

原创 android constraintLayout的weight和chainStyle的使用

代码如下 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http:...

2019-08-24 15:43:24 239 0

原创 android constraintLayout设置margin为负数

代码如下,基本上就是利用space <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:an...

2019-08-23 15:28:53 876 0

原创 ERROR: Failed to resolve: com.facebook.react:react-native:0.51.0

出现这个错误的原因:我这边是因为安装的react-native的版本比0.51.0的版本号要高,所以一直报这个错。 解决方法:让react-native降级,首先在cmd中用cd命令切换到当前项目目录下,然后执行如下命令 npm install --save react-native@0.51.0...

2019-08-19 18:35:58 1915 0

原创 git 常用命令记录二

1.拉取远程分支到本地,并且切换到这个分支上 git fetch:获取所有远程分支 git branch -r:可以看到所有的远程分支 git checkout NewBranchName:切换到新分支NewBranchName上 ...

2019-08-07 14:25:30 44 0

原创 android gradlew几条命令

常用的几条命令,暂且记录一下,后边有时间会继续更新 编译查看错误 gradlew compileDebugJavaWithJavac gradlew processDebugManifest --stacktrace gradlew assembleDebug --stacktrace gradl...

2019-07-30 15:56:49 185 0

原创 org.gradle.tooling.BuildException: Failed to process resources, see aapt output above for details

错误日志如下 org.gradle.tooling.BuildException: Failed to process resources, see aapt output above for details. at com.android.build.gradle.internal.res.L...

2019-07-26 17:17:03 343 0

转载 android Binder机制

本文转自一位大佬的博客,原文地址 首先我们可以带着疑问来理解binder机制,也就是binder机制在Android中有哪些地方运用了? 看你是否能回答如下问题 1.为什么activity之间传递对象需要序列化? 2.activity的启动流程是什么样? 3.四大组件底层通信机制是什么样的? 4....

2019-06-26 16:25:48 50 0

原创 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/graphics/drawable/Animatable2

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/graphics/drawable/Animatable2Compat Failed to find GeneratedAppGlideModule. ...

2019-06-13 22:07:20 1410 0

原创 求二叉树的最大深度

求二叉树的最大深度 public class Depth{ public int maxDepth(TreeNode root){ if(root == null){ return 0; } int leftDepth = maxDepth(root.left); i...

2019-05-24 21:06:51 74 0

原创 Error:com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBu

Error:com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\user.g...

2019-05-23 16:15:18 895 0

翻译 链表的中间节点

题目:现有一个单链表[1,2,3,4,5],返回它的中间节点3 class Solution { public ListNode middleNode(ListNode head) { ListNode fast = head; List...

2019-05-20 15:58:29 52 0

原创 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/LoaderManager

Process: cn.com.aaa.bbb, PID: 6894 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/LoaderManager; ...

2019-05-11 19:58:06 3159 0

原创 从二维数组中找出对应数的下标

从二维数组中找出对应数的下标,思路如下 遍历整个二维数组,当前数组下标值不是要查询的值的时候,就让col++,然后判断col是否大于等于二维数组的col值,如果是,那么说明需要判断下一行了,也就让col=0,row++。搞定! public class TwoDimensionalArray {...

2019-05-07 09:33:41 1358 0

原创 android glide加载webp动画设置播放动画次数和监听动画播放完成

需求 产品经理说:需要使用一系列的动画,我说没问题啊,用gif图不就好了吗?结果,设计师给了我一系列的webp动图。我能怎么办? 先是百度了一番,找到了一个播放webp动画的glide库,库地址是GlideWebpDecoder。 心想,这不就很快搞定了吗?美滋滋! 一阵操作猛如虎… 引用 ...

2019-04-26 13:27:40 1406 0

原创 android 两个播放器同时播放视频

需求 产品经理说:要实现两个播放器同时播放不同的视频,暂停啊快进啊播放完成啊这些状态都要同步,播放过程中如果出现某一个视频在缓冲中,那么另外一个视频就得等待缓冲视频缓冲完成,然后才继续播放。 因为之前接触播放器的经验不多,所以感觉无从下手,不知道怎么同步,也不知道如何让一个视频等待另外一个视频...

2019-04-18 21:23:39 1986 0

原创 com.android.builder.dexing.DexArchiveBuilderException

Error:Execution failed for task ‘:myapplication:transformClassesWithDexBuilderForDebug’. com.android.build.api.transform.TransformException: com.andr...

2019-03-26 16:00:16 467 0

原创 android 常见面试题三

1.HashMap的原理 2.HashMap为什么大小是2的幂次 3.介绍一下红黑树 4.ArrayList的原理 5.ArrayList的扩容机制 6.为什么ArrayList的扩容是1.5倍 7.堆排序的原理 8.抽象方法和工厂方法的模式区别 9.工厂模式的思想 10.Object类你知道的方...

2019-03-17 18:05:56 68 0

原创 android 日志文件LogUtils

背景 这是好久之前在网上找的一个常用类,已经忘记原文链接了,但是觉得很好用一直都在用,可以将日志写到file里面也可以定位你是在哪个类哪一行打印的日志,保存到文件的路径就是android/data/你的包名/files/目录下,然后我们就可以愉快的找问题了 import android.te...

2019-03-11 19:54:05 404 0

原创 android blutoothHeadset引用Context导致的内存泄露

背景 这几天在测试应用,所以为了看应用是否有内存泄露,就加入了LeakCanary,结果还真有,因为我们是直播应用,使用了声网的视频通话技术,所以发现退出的时候Activity没有被释放,并且打开几次就有几个实例,这就爽歪歪了。 先上内存泄露的图 从上图中可以看出,是在声网io.ago...

2019-02-27 22:50:50 179 1

原创 android设计模式之原型模式

定义 使用拷贝来创建一个新的对象 背景 其实在android的源码里面,我们使用很多的Intent,就使用了原型设计模式,使用原型设计模式其实就是减少了我们手动设置对象的属性值的繁冗代码。 分析 第一步 实现Cloneable接口,重写clone方法 public class U...

2019-02-27 19:47:23 95 0

转载 (转)json数据解析异常而导致网络请求失败的解决办法(其一)

原文出处 https://www.jianshu.com/p/d6bd6bd5fce3 参考文章 问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口时并未考虑Android端的json数据的解析,导致接口是这样的。。。。 正确请求 { &...

2019-02-20 17:51:04 1550 0

原创 java 有序链表删除重复元素

有一个有序链表,删除掉重复的元素。 例如:[5,5,6,6,7,7,8,8] 正确输出结果:[5,6,7,8] 解决方法 public class ListNode { int val; ListNode next; ListNode(int x) { val =...

2019-01-28 11:10:56 307 0

原创 java 两个有序链表合并为一个有序链表

两个初始有序链表如下 l1: 1----&amp;gt;2----&amp;gt;4 l2: 1----&amp;gt;3----&amp;gt;4 结果应该为: 1----&amp;gt;1----&amp;gt;2----&amp;gt;...

2019-01-26 16:47:49 351 0

原创 org.json.JSONException: Value of type java.lang.String cannot be converted to JSONObject

今天在解析json字符串的时候,发现直接奔溃了,说是我不能将String字符串转成对象,我就纳闷了,之前一直都是这么转换的啊?为啥突然不行了? 1.正常返回的json对象字符串 {“lat”: 39.945542175353026,“lng”: 116.52511596679689,“ad...

2019-01-23 12:10:12 745 0

原创 android 一个轻巧的MVP框架

概述 因为写了很多小app,业务逻辑并不是很复杂,涉及到的技术也不多,所以一直都想弄一个轻巧点的框架,只需要请求网络,拿到网络数据即可。于是就有了下边这篇文章,不喜勿喷,个人记录。 背景: 现在比较流行的框架当然是MVP,网上有很多demo,我觉得讲的比较好,扩展性高,耦合性低就有一个MVPA...

2019-01-03 19:49:44 73 0

转载 android lottie分析

原文出处 LottieAndroid使用详解及源码解析,让你的应用加载动画变得轻而易举。 我们主要从以下四个方面来讲解: 一、LOTTIE简介 二、LOTTIEANDROID的使用 三、LOTTIEANDROID源码解析 四、可能遇到的问题会有哪些 一、Lottie简介 LOTTIE是什么? Lo...

2018-12-31 17:51:26 70 0

翻译 android之装饰设计模式

定义 在不使用继承的前提下,动态的扩展一个类的功能,就叫做装饰设计模式。 android里面使用装饰设计模式的有Context,ListView添加和删除头部尾部布局,还有IO流等等。那么到底如何动态的扩展一个类的功能呢?请看如下分析。 ...

2018-12-28 21:05:37 54 0

原创 android 设计模式之六大原则

设计模式原则 1.单一原则 就一个类而言,引起类变化的原因仅有一个。简单来说,一个类应该是一组相关性很高的函数,数据的封装 2.开闭原则 软件中的对象(类,模块,函数)应该对扩展开发,多修改关闭(对外可扩展,对内不可修改) 例如:网络请求框架中, 我们应该定义一个接口,然后用...

2018-12-22 15:54:34 93 0

提示
确定要删除当前文章?
取消 删除