自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nothing

I like coding , haha , and I also like joking

原创 SimplePhotoPicker:调用系统相机、相册的轻量框架

# SimplePhotoPicker 一个进入相册,调用相机的**可高度定制化**的框架,持续维护中… 效果图 ———– 那些你所担心但是已经帮你解决的问题 1.Android6.0**隐私权限**请求...

2018-09-13 17:25:50 272 0

转载 Android Studio新建module,以及module引用aar等相关问题

一、新建module如果是作为lib被引用,需要选择Android Library。 二、作为lib的module如果引用了aar文件: 1、把aar文件放到module的libs目录下 2、作为lib的module的gradle文件: repositories { flatDir { ...

2019-10-31 10:47:03 303 1

转载 aar包导入引起的Error:Failed to resolve: :xxxaar: 的问题

在Android Studio中 如果在module中依赖了aar库,当build工程的时候,会出现failed to resolve的错误 想要解决这个问题可以在app的build.gradle中加入下面代码: repositories { flatDir { ...

2019-10-31 10:42:08 1229 0

原创 Fragment的show()、hide()和attach()、detach()切换方式生命周期过程

1.使用show()、hide()方式进行fragment切换 @Override public void onClick(View view) { switch (view.getId()){ case R.id.main_home: ...

2019-09-26 16:33:08 293 0

转载 Java开发人员最常犯的9个错误

1.Array转ArrayList 当需要把Array转成ArrayList的时候,开发人员经常这样做: String [] strArray = {"0" , "1" , "2"}; List<String> list = ...

2019-09-06 10:26:39 41 0

原创 Android 获取目录下所有文件信息(名字、大小)

private void getFiles(){ File file = new File(GlobalConstant.POSLOGPATH); File[] files = file.listFiles(); for (int i = 0; i ...

2019-08-06 14:37:00 1053 1

转载 关于线程安全最通俗易懂的解释

下面的博客是在博客园上面看到的大佬写的,写的很好,通俗易懂,作为一个萌新看完以后促使我对线程安全有了新的理解。 博客未经博主的同意,所以未擅自转载,下面附快速通道 点次进入博客内容 ...

2019-07-26 16:01:01 94 0

原创 Android崩溃日志收集---CrashHandler,给你自残的理由

使用CrashHandler的目的 测试人员过来告诉你,“你写的代码崩溃了!” “what ? ! 我写的代码怎么可能会崩溃?!你复现一下,污蔑我的话信不信自残给你看” “哎,这次怎么好了,什么情况?” 虽然说这种几率性bug可以晚点解决,但是终归是要解决的,但是复现又有点困难,那怎么办?那就只能...

2019-03-29 17:05:38 1268 0

原创 进阶之路:Java设计模式---外观模式

外观模式定义: 外部与子系统间进行通信时,需要通过一个统一的外观进行,为子系统的一系列接口提供一个统一的界面。外观模式定义了一个高层接口,这个接口使子系统更易使用。外观模式又称为门面模式,它是一种对象型结构模式。 实现: 客户端发出一条指令:“将大象放进冰箱”; 服务端为了保证代码的单一职...

2019-03-28 14:49:54 49 0

原创 一天或者几天一个小算法---数列排序方式

/** * 数字排序 */ public class Algorithm5 { /** * 冒泡排序 * 自认为是最简单的一个排序方法,只是拿出一个数,大的放后,小的放前就可以了 * 时间复杂度为O(n2) */ public stat...

2019-03-27 14:59:10 67 0

原创 进阶之路:Java设计模式---适配器模式

适配器模式定义: 适配器模式就是把一个类的接口变为另一个类期望的接口,从而让原来两个因接口不匹配而无法一起工作的两个类能在一起工作 适配器模式: 类适配器模式和对象适配器模式 类适配器模式实现: /** * 目标类 */ public interface Target { void ...

2019-03-26 15:51:43 52 0

原创 一天或者几天一个小算法---Fibonacci(菲波那切)数列

题目 输入n,求出Fibonacci数列第n项的数值 思路 1.Fibonacci数列是什么 F(0) = 0; F(1) = 1; F(n) = F(n-1) + F(n-2) 2.实现开始 Fibonacci数列的第0、1、2项为基础数值,后面所有的数值都由这三个得来,前三...

2019-03-25 17:02:02 85 0

原创 进阶之路:Java设计模式---Builder模式

什么是Builder模式? 将一个复杂对象的构建与它的表示相分离,使得同样的构建过程可以创建不同的对象。一步一步构建一个复杂的对象,它允许用户只通过指定复杂对象的内容和类型就可以构建他们,用户不需要知道内部的具体构建细节。 有什么特点? 优点: 1.良好的封装性,使用建造者模式可以使客户端...

2019-03-25 15:34:36 53 0

原创 进阶之路:Java设计模式---单例模式

package com.example.administrator.javadesignmode.single_mode; public class SingleInstance { private static SingleInstance singleInstance; ...

2019-03-23 16:15:48 59 0

转载 Android 在不确定后台返回json格式时,如何解析数据

前面一篇文章我介绍了Gson的解析的基本方法。但我们在享受Gson解析的高度封装带来的便利时,有时可能会遇到一些特殊情况,比如json数据中的字段key是动态可变的时候,由于Gson是使用静态注解的方式来设置实体对象的,因此我们很难直接对返回的类型来判断。但Gson在解析过程中如果不知道解析的字段...

2019-03-11 16:48:57 1524 0

原创 AndroidTimeLine(时间轴)绘制

实现方法 Recyclerview+ItemDecoration 重写ItemDecoration class TimeLineItemDecoration(var context: Context) : RecyclerView.ItemDecoration() { //...

2019-03-07 15:10:37 2342 2

转载 RxJava+Retrofit框架中多种操作符解释

转自:http://www.jianshu.com/p/2b0aeb6b6b61 从年前一两个月开始,就开始慢慢接触RxJava+Retrofit,针对以往开发中遇到的情况,慢慢写了一个框架Demo。文章不在进行入门介绍,需要了解的同学,可以查看笔者总结的文章RxJava、Retrofit 分割R...

2018-12-13 11:38:09 482 0

原创 android 两数相除,保留两位及多位小数

/** * valueOne:除数 * valueTwo:被除数 * scale:保留几位小数 */ fun divide(valueOne: Int, valueTwo: Int, scale: Int): Double { ...

2018-12-11 10:50:02 1364 0

原创 Retrofit添加拦截器报错:must call proceed() exactly once

这是因为你的OkHttpClient.Builder调用的addNetworkInterceptor方法添加的拦截器,这种方式添加的拦截器里面的Chain只能调用一次proceed方法,如果想调用多次,你的拦截器就要用addInterceptor方法添加,就没问题了 ...

2018-12-07 17:35:16 663 0

原创 GridLayoutManager中setSpanSizeLookup()的基本操作,实现布局多样化

效果图 上面布局格式为1-2-1-2,你可以使用itemtype做多布局,但是还有一种更简单的方法就是使用GridLayoutManager的setSpanSizeLookup()函数 代码如下 适配器和布局文件的代码就不贴出了,只贴出关键代码 private void initVie...

2018-11-15 15:27:04 2805 3

转载 android 手机分辨率与DPI对照表

分辨率对应DPI ldpi QVGA (240×320) mdpi HVGA (320×480) hdpi WVGA (480×800),FWVGA (480×854) xhdpi 720P(1280*720) xxhdpi 1080p(1920*1080 ) xxxhdpi 4K(384...

2018-11-09 15:58:49 20387 0

转载 AtomicBoolean的介绍与使用

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AtomicBoolean是java.util.concurrent.atomic包下的原子变量,这个包里面提供了一组原子类。其基本的特性就是在多线程环...

2018-11-09 11:59:06 93 0

原创 一个小Demo来理解关于IPC(进程间通信)中的aidl

项目地址: Server端代码:Server端代码链接 Client端代码:Client端代码链接 1、IPC的基本要求 IPC(Inter-Process Communication)进程间通信是要在两个相互独立的进程之间进行信息的传递,在Android中每个进程都会被分配一个独立的虚拟...

2018-10-29 15:45:13 71 0

原创 Android canvas.save()与canvas.restore()的使用总结

含义 canvas.save(); 画布将当前的状态保存 canvas.restore(); 画布取出原来所保存的状态 使用 canvas.save();与canvas.restore();一般结合使用,.save()函数在前,.restore()函数在后,用来保证在这两个函数之间所做...

2018-10-10 17:17:36 7688 0

原创 Android饼状图绘制

效果图 代码 https://github.com/269138004/PieChartsView 说明 有时间再补充

2018-10-09 16:10:41 420 0

原创 ModeMVC:在activity中堆代码就叫做MVC吗?

首先,看看这是不是自己 现在Android编程中如果在你没有特别认真设计框架,没有认真考虑面向对象的六大原则对编程重要性的时候,我们一般都是认为自己使用的是MVC的框架模式。但是你使用的真的是MVC吗?还是只是单纯的在activity中堆代码?如果是后一种情况,那么MVC框架的M,V,C这三层到...

2018-09-26 16:51:58 141 0

转载 Transition:Activity过渡、共享元素动画

本文原项目地址为:https://github.com/lgvalle/Material-Animations 在文章最后,有我自己对着这个项目手敲的一份。 代码基本一模一样,只有略微的修改,加了一些注释,以及将其中大多数英文翻译成了中文。 此篇 API 均为 Android 5.0(API 级...

2018-09-12 17:34:47 709 0

转载 Android Studio布局预览功能无法显示

第一种:今天刚升级AndroidStudio3.0稳定版,死机已经好几次了不知道为什么,同时布局预览功能也有问题,提示:Failed to load AppCompat ActionBar with unknown error.后来查询了下,需要在应用的引用样式中加上Base的前缀,在Theme....

2018-09-12 14:38:06 1477 0

原创 Android客户端修改加载的h5页面样式

为什么要修改 有的网页在你设置了WebView的WebSetting的时候,在手机端的显示会比较满意,但是部分网页以及部分手机就算你设置了WebSetting,但是在显示的时候还是会有问题,比如网页顶部的标题字体太大,当显示到手机的时候字体出现了重叠,影响用户体验效果。 如何修改 WebV...

2018-09-05 16:33:03 962 0

原创 Recyclerview内部的bug:IndexOutOfBoundsException: Inconsistency detected

错误日志  java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 15(offset:15).state:25 android.support.v7.widget.RecyclerVi...

2018-09-04 18:51:34 536 0

转载 Java基础之—反射

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))   一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获...

2018-07-31 17:09:11 134 0

转载 Android Text设置神器之SpanableString

TextView在Android中几乎是再常见不过的控件了,几乎遍布在各个角落里,对TextView并没有什么技术点来做分析,但是有时候可能会需要你在项目中处理一些特殊字体,比如下划线,横穿线,亦或者是为TextView部分字体设置点击或者颜色背景等等,这点需求虽然不是什么难事,但是选不好解决方法...

2018-07-30 11:12:39 388 0

原创 Android收集崩溃日志并上传

public class CrashHandler implements Thread.UncaughtExceptionHandler { public static final String TAG = "CrashHandler"; // 系统默认的...

2018-07-25 17:40:26 1104 0

转载 Java中的static关键字解析

Java中的static关键字解析  static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的...

2018-07-12 15:04:38 87 0

转载 Android 背景透明度设置总结

一、写在前面的在需求上遇到背景设置透明度还是比较常见的,设置透明度有几种方式,但是不同的场景应用下,不同的方式可能会出现一些问题。针对开发过程中的需求做以下总结。二、先看效果图图1、   图2、图3、 图4介绍:图1、蓝色头部和输入框背景初始状态   图2、点击按钮01,输入框的透明度不起作用,和...

2018-07-03 16:32:13 5764 0

转载 Android根据经纬度获取城市名的方法

根据经纬度获取当前城市名的几种方式如下(获取城市名需要网络连接)1. 通过服务获取城市名百度:http://api.map.baidu.com/geocoder?output=json&amp;location=39.913542,116.379763&amp;ak=esNPFDw...

2018-07-02 15:42:36 1907 0

转载 Android屏幕适配全攻略(最权威的官方适配指导)

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对...

2018-06-29 17:17:09 376 0

转载 解决Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误

今天在电脑上安装了Mysql 8.0.11,然后又屁颠屁颠地安装了Navicat for MySQL,打开Navicat准备链接数据库的时候出现了如下提示:上网搜索解决方案,网上说出现这种情况的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8...

2018-06-29 16:20:14 1412 0

转载 Android Retrofit2 动态(静态)添加请求头Header

Retrofit提供了两个两种定义HTTP请求头字段的方法即静态和动态。静态头不能改变为不同的请求,头的键和值是固定的且不可改变的,随着程序的打开便已固定。动态添加@Header@GET("/") Call&lt;ResponseBody&gt; foo(@He...

2018-06-28 16:34:26 6733 0

转载 Mac下安装配置gradle

1.下载gradle2.解压3.获得gradle解压后的路径4.修改.bash_profile文件,配置环境变量  vi ~./bash_profileexport GRADLE_HOME=/Users/FengZhen/Desktop/java/gradle/gradle-3.4.1/bin e...

2018-06-04 10:15:47 349 0

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