- 博客(82)
- 资源 (40)
- 问答 (1)
- 收藏
- 关注
原创 Android DataBinding使用详解(二)
《Android DataBinding使用详解(一)》官方文档Demo下载地址1.在RecyclerView中使用DataBindingAdapter的定义方式和普通方式相同,都是继承了RecyclerView.Adapter,然后实现其中的方法,但是具体的实现方式还是有所差别的:public class RecyclerViewAdapter extends RecyclerView.Adapt
2017-07-26 08:54:44 1661 2
原创 Android DataBinding使用详解(一)
DataBinding是一个实现数据和UI绑定的框架,同时也是实现MVVM模式所依赖的工具。官方文档Demo下载地址1.构建环境在app根目录的build.gradle文件中加入DataBinding配置:android { .... dataBinding { enabled = true }}环境要求:系统版本:Android 2.1(API leve
2017-07-24 08:51:00 3279 4
原创 Android 使用RxLifecycle解决RxJava内存泄漏
RxLifecycle GitHub地址RxJava GitHub地址1.为什么会发生内存泄漏使用RxJava发布一个订阅后,当页面被finish,此时订阅逻辑还未完成,如果没有及时取消订阅,就会导致Activity/Fragment无法被回收,从而引发内存泄漏。 写段代码测试一下,定义一个Activity,布局中显示一张图片,这样可以直观的看到此Activity的内存占用情况,然后在Activi
2017-07-06 08:41:22 27710 8
原创 Android 谈谈我所理解的MVP
嗯,这篇博客应该有个副标题:Retrofit + RxJava + RxLifecycle + MVP在上一篇文章中,我们对Retrofit进行了封装,But,这种封装是不支持MVP模式的,今天就以Retrofit和RxJava为基础,谈谈我所理解的MVP。《Android Retrofit + RxJava使用详解》《Android 探讨一下Retrofit封装的最佳姿势》1.MVP VS MVC
2017-06-29 08:44:34 2565 1
原创 Android 探讨一下Retrofit封装的最佳姿势
在上一篇文章《Android Retrofit + RxJava使用详解》中,我们学习了Retrofit的一些基本用法,但在实际的项目使用中,还是会出现一些问题,今天就让我们一起来探讨一下如何对Retrofit进行封装吧!如果你对Retrofit还不太了解,可以>戳这里<学习一下。如果你用的是MVP,这篇文章可能不太适合你。1.背景介绍首先来回顾一下Retrofit的基本使用流程,直接上代码:/**
2017-06-27 08:39:48 1831 2
原创 Android Retrofit + RxJava使用详解
1.Retrofit基本使用首先来了解下Retrofit是什么,在官网中对于Retrofit的描述是这样的: A type-safe HTTP client for Android and Java. 适用于Android和Java的类型安全的HTTP客户端。可以理解成一个封装好的网络请求库。Retrofit GitHub地址接下来学习一下Retrofit的基本使用方法:在app根
2017-06-21 08:32:51 5586 2
原创 Android 关于Handler内存泄漏的那些事
在上一篇文章《Android Handler机制完全解析》中,我们从源码的角度分析了Hanlder机制,接下来继续学习Handler,本篇文章主要讲解的是Handler可能会导致的内存泄漏以及解决方案。1.为什么会发生内存泄漏在平时使用Handler的时候,我们通常会这样定义:// 定义一个Handler对象,并实现handleMessage方法Handler handler = new Hand
2017-06-17 01:17:18 595
原创 Android Handler机制完全解析
Android Handler机制完全解析1.为什么要引入Handler机制?举个栗子:通过网络获取数据然后显示在TextView中,由于网络通信属于耗时操作,所以必须在子线程中完成,但是子线程中是不能更新UI的(特殊情况除外),为了解决以上问题,Android引入了Handler机制,由Handler来负责与子线程进行通讯,从而使子线程与主线程之间建立起协作的桥梁,使Android的UI更新问题得
2017-05-06 23:36:04 842
原创 Android属性动画(三) TimeInterpolator(插值器)
OK,继续学习属性动画,本篇文章是属性动画系列的第三篇文章了,今天来学习一下属性动画中的TimeInterpolator,如果你对属性动画还不太熟悉,可以点击下面的链接学习一下前两篇文章的知识:《Android属性动画(一) 初识基本用法》《Android属性动画(二) ValueAnimator的实际应用 & 自定义TypeEvaluator》1.介绍先说说Interpolator,在Androi
2017-03-13 10:00:02 2109
原创 Android属性动画(二) ValueAnimator的实际应用 & 自定义TypeEvaluator
在上一篇文章《Android属性动画(一) 初识基本用法》中,我们学习了属性动画的基本用法,但是在一些场景中,这些用法还远不能满足我们的需求,今天就让我们来学习一下属性动画的高级用法吧!1.ValueAnimator的实际应用在上篇文章中我们学习到,ValueAnimator.ofInt()方法可以帮我们计算初始值到结束值之间的动画过渡值,但是这些值如何应用到实际的View中呢,举个简单的例子来实践
2017-03-03 09:51:08 1333 5
原创 Android属性动画(一) 初识基本用法
1.介绍Android系统为我们提供了三种动画效果的实现方式:补间动画(Tween Animation):只能对View进行动画操作,支持移动、旋转、透明、缩放四种效果,有一定的局限性。逐帧动画(Frame Animation):把一个动画分成多张图片,然后把这些图片连贯起来播放,原理和动画片类似。属性动画(Property Animation):通过改变对象的属性值来实现的动画效果,不局限使
2017-03-01 09:48:52 940
原创 Java多线程 线程同步与死锁
1.线程同步多线程引发的安全问题一个非常经典的案例,银行取钱的问题。假如你有一张银行卡,里面有5000块钱,然后你去银行取款2000块钱。正在你取钱的时候,取款机正要从你的5000余额中减去2000的时候,你的老婆正巧也在用银行卡对应的存折取钱,由于取款机还没有把你的2000块钱扣除,银行查到存折里的余额还剩5000块钱,准备减去2000。这时,有趣的事情发生了,你和你的老婆从同一个账户共取走了40
2017-02-25 15:47:18 6511 4
原创 Android 仿京东金融首页头像效果
1.介绍看下效果图,gif录的有些卡顿,在真机上运行效果很好。2.实现很有意思的一个效果,原理其实很简单,就是通过监听ScrollView在Y轴的滑动距离,然后在代码中动态设置头像的位置和大小。public class MainActivity extends AppCompatActivity { private CircleImageView ivPortrait; private
2017-02-06 09:24:47 1425
原创 Android Dialog与软键盘的正确打开方式
1.写在前面2017年的第一篇博客,首先祝大家新年快乐,在新的一年里健健康康、平平安安!本篇博客的主要内容是关于在Dialog中软键盘的显示与隐藏问题,需求是在Dialog中有一个密码输入框,弹出Dialog显示软键盘,关闭Dialog隐藏软键盘。 嗯,是不是有点简单,不过在实现的过程中还是遇到了一些问题,在试过了网上大部分的方法之后,最终找到一个还不错的方法,分享给大家。看下效果图:2.实现过程
2017-02-05 11:37:12 10156 4
原创 分享一些有意思的资源
1.Android Studio主题来张图感受下:首先安装两个插件,打开File >> Settings >> Plugins,然后点击Browse repositories,搜索Material Theme UI 和 ChroMATERIA,点击右边的绿色Install按钮安装,然后重启Android Studio。重启完成后打开File >> Settings >> Editor >> Co
2016-12-28 09:37:22 588
原创 Android 如何优雅的打印日志
1.介绍今天来介绍Android平台上一款简单、漂亮、强大的开源日志库Logger。Logger GitHub地址Logger提供了以下方法:打印线程的信息打印类的信息打印方法的信息优雅的打印JSON数据优雅的打印换行符打印简洁的信息点击日志跳转至源码感受下Logger打印的日志:2.简单使用在app根目录的buil.gradle文件中加入依赖compile 'com.orhanob
2016-12-27 09:40:12 6296
原创 使用GitHub打造你的个人主页
1.介绍介绍下本文的内容,首先使用GitHub Pages来搭建主页,然后购买一个域名,把域名解析到主页,就可以直接通过域名来访问个人主页了。 看下最终的效果,在浏览器地址栏输入域名www.yangle.tech,即可访问个人主页。2.搭建主页首先在GitHub上新建一个仓库,仓库名称规则为:你的GitHub账号.github.io,点击Create repository创建。创建好仓库后,需要将
2016-12-22 09:25:51 10388 4
原创 使用Java实现Xmodem协议
1.介绍Xmodem是一种在串口通信中广泛使用的异步文件传输协议,分为Xmodem(使用128字节的数据块)和1k-Xmodem(使用1024字节即1k字节的数据块)协议两种。 本文实现的是128字节数据块的Xmodem协议,采用CRC16校验,在项目中应用时,发送端和接收端可根据具体情况修改双方的协议。 如果你对串口通信还不太了解,可以看下我写的这篇博客使用Java实现串口通信。
2016-12-16 09:46:43 2741 2
原创 Android图表 MPAndroidChart折线图
1.介绍MPAndroidChart GitHub地址 MPAndroidChart的强大之处就不在多说了,目前最新的版本是3.0.1,在新版本中很多方法都被弃用了,这个要注意一下,在网上查到的大多数资料都是关于旧版本的,今天来实现一下折线图,把过程记录下来,分享给大家。效果图:2.引入开源库在项目根目录的build.gradle文件中加入如下代码allprojects { repos
2016-12-14 09:40:39 20201 39
原创 Android自定义控件 温度旋转按钮
1.介绍首先看下效果图2.思路初始化一些参数绘制刻度盘绘制刻度盘下的圆弧绘制标题与温度标识绘制旋转按钮绘制温度处理滑动事件提供一些接口方法3.实现初始化一些参数public class TempControlView extends View { // 控件宽 private int width; // 控件高 private int height;
2016-12-12 09:38:25 5705 14
原创 GitLab配置SSH Key
公司的项目是使用GitLab进行托管的,最近重新装了系统,把本地的私钥删掉了,导致项目无法Push了,原来的SSH Key是运维的小伙伴帮忙配置的,今天小伙伴不在,只能自己动手了,把过程记录下来,分享给同学们。注意:本篇文章是基于Windows系统的1.环境配置首先安装Git和TortoiseGit,不要问我为什么要装TortoiseGit,不知道为什么,就是喜欢小乌龟。Git下载 Tortois
2016-11-26 13:06:34 15955 5
原创 Android 6.0运行时权限问题汇总
本文主要收集了一些运行时权限的常见问题,作为上一篇文章《Android 6.0运行时权限详解》的补充,还没有看过上一篇博客的同学可以先了解下。本文长期更新,如果你遇到了相关问题,欢迎在评论区指出。1.在MIUI上使用遇到的问题这个问题来自于GitHub上的反馈,有一位同学使用小米note(Android6.0系统)测试,点了拒绝授权以后,再次申请不会再次弹出权限申请的提示,而是显示“权
2016-11-04 10:02:11 5933
原创 Android自定义控件 芝麻信用分雷达图
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。1.介绍首先看下支付宝上芝麻信用分的效果图:2.思路确定雷达图中心点坐标绘制多边形及连接线根据维度值绘制覆盖区域绘制分数绘制每个维度的标题文字和图标3.实现获取布局的中心坐标在onSizeChanged(int w, int h, int oldw, int oldh)方法里面,根据View的长宽,计
2016-10-23 20:11:08 7952 24
原创 自己动手写一个Android Studio插件
1.介绍官方文档在使用Android Studio开发的时候,大部分人都会使用一些插件来提高开发效率,比如:ButterKnife 自动生成注解代码PermissionsDispatcher 更方便的进行Android 6.0权限处理像这样的插件还有很多很多,但我们不能一直停留在用的程度,这样太不符合程序猿的风格了,今天就让我们自己动手来写一个插件,当以后自己有好的想法的时候,也能写一个出色的
2016-10-21 11:38:13 4245 4
原创 Android 使用JitPack快速发布你的GitHub开源库
1.介绍Android Studio使用了Gradle来管理依赖,这让引入第三方库变得更加方便高效,目前在Studio中使用Gradle依赖,有几种方法:jCenterMaven Central使用其他自定义的仓库使用Center和Maven Central的方式太过繁琐,实在不想用,在GitHub上发现,越来越多的开源库选择了JitPack来发布,JitPack实际上是一个自定义的Mave
2016-10-17 15:46:26 1631
原创 Java 使用POI实现Excel表格的导入导出
1.介绍最近的项目需要导出数据到Excel表格里,写个Demo测试一下,还是比较简单的,写在博客里记录下来,分享给童鞋们。需要导入POI.jar包,下载地址:2.实现已经在代码中加入了完整的注释。import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import jav
2016-10-13 10:16:12 14429 19
原创 Android 流式布局FlowLayout 实现关键字标签
1.介绍流式布局的应用还是很广泛的,比如搜索热词、关键词标签等,GitHub上已经有很多这样的布局了,但是还是想着自己实现一下,最近一直在学自定义控件,也巩固一下所学的知识。 本文实现的效果如下图所示:2.思路继承自RelativeLayout,可以直接使用RelativeLayout中的相关属性,本文也可以修改为继承ViewGroup,并不会有什么影响。在onMeasure方法中计算出所有c
2016-10-11 16:42:51 5935 13
原创 使用Proguard混淆jar包
ProGuard下载地址:http://download.csdn.net/detail/kong_gu_you_lan/96371311.ProguardProguard的首页,右下角的Load configuration按钮可以导入已经配置好的混淆文件。2.Input/Output在上面的框内添加要混淆的jar包路径,和混淆后的jar包输出路径。 下面的框内添加jar包的依赖包,项目中lib文
2016-09-22 18:06:12 2476
原创 Android 6.0运行时权限详解
1.介绍Runtime Permissions官方说明Android 6.0之前,权限在应用安装过程中只询问一次,以列表的形式展现给用户,然而大多数用户并不会注意到这些,直接就下一步了,应用安装成功后就会被赋予清单文件中的所有权限,应用就可以在用户不知情的情况下进行非法操作(比如偷偷的上传用户数据)。Android 6.0版本中运行时权限的出现解决的这一问题,一些高危权限会在应用的运行过程中动态申请
2016-09-12 14:33:04 7445 30
原创 使用Java实现串口通信
1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 效果图如下: 2.RXTXcommJava串口通信依赖的jar包RXTXcomm.jar 下载地址:http://download.csdn.net/detail/kong_gu_you_lan/9611334内含32位与64位版本 使用方法: 拷贝 RXTXcomm.jar 到 JAVA_HOME\jre\lib\e
2016-08-24 17:07:16 54061 278
原创 使用exe4j将java程序打包成exe可执行文件
1.将java程序打包成jar使用第三方插件fatjar生成jar文件,将net.sf.fjep.fatjar_0.0.31.jar直接拷贝到MyEclipse安装目录下的dropins文件夹中,然后重启Eclipse即可。 重启完成后,右击java项目会出现Build Fat Jar选项(一个绿色的加号),点击后进入下图所示界面 Jar-Name设置jar的名称,Main-Class点击Bro
2016-08-10 17:51:18 6067 2
原创 TextView中部分文字高亮显示
/** * 关键字高亮显示 * * @param context 上下文 * @param text 需要显示的文字 * @param target 需要高亮的关键字 * @param color 高亮颜色 * @param start 头部增加高亮文字个数 * @param end 尾部增加高亮文字个数 * @return 处理完后的结果 */pub
2016-08-01 10:53:58 3131
原创 EditText辅助控件—TextInputLayout
1.介绍TextInputLayout是一个用于在EditText上显示floating效果的辅助控件。效果图如下:2.使用方法import android.content.Context;import android.os.Bundle;import android.support.design.widget.TextInputLayout;import and
2016-07-28 17:10:07 2252
原创 RecyclerView横向滑动监听,判断是否滑动到了最后一个Item
项目中的需求,RecyclerView横向滑动列表,要有加载更多的功能,给RecyclerView设置一个滑动监听,在onScrolled方法中判断一下滑动方向,然后在onScrollStateChanged方法中判断一下是否滑动到最后一个item即可,代码中已经写了详细的注释:public abstract class EndlessRecyclerOnScrollListener ex
2016-07-25 14:54:13 14121
原创 Android zxing生成二维码
注释已经写得很详细了,就不再单独说明了,直接把工具类拷贝到项目里就可以使用,别忘了导入zxing.jarimport android.content.Context;import android.graphics.Bitmap;import android.graphics.Color;import android.graphics.Matrix; import com.google
2016-07-22 17:44:43 3709
原创 可折叠的Toolbar—CollapsingToolbarLayout
1.介绍CollapsingToolbarLayout的作用是提供了一个可以折叠的Toolbar,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶端)。效果图如下:
2016-07-19 18:17:44 2702
原创 FrameLayout布局的增强版—CoordinatorLayout
1.介绍CoordinatorLayout是用来组织它的子Views之间协作的一个父View。CoordinatorLayout默认情况下可理解成一个FrameLayout,它的布局方式默认是一层一层叠上去。本文主要讲的是CoordinatorLayout+AppBarLayout的组合使用,绿色的部分代表导航栏。效果图如下:2.使用方法在build.gra
2016-07-19 15:47:02 2140
原创 TabLayout选项卡
1.介绍TabLayout 是Google在2015年I/O大会上推出的一款选项卡控件,功能与TabPageIndicator类似,可以兼容到Android2.1及以上版本。效果图如下:2.使用方法在build.gradle文件中加上这段代码:compile 'com.android.support:design:22.2.0'public class TabL
2016-07-19 11:31:52 2745
原创 Design Support Library介绍
1. 简介Design Support Library是Google在2015年的IO大会上发布的全新Material Design支持库,在这个support库里面主要包含了 8 个新的 Material Design组件,最低支持 Android 2.1。 Widget Name Description TextInputLayout EditText辅助控件 Floating
2016-07-18 15:17:52 3334
使用Java实现串口通信demo 第二版
2018-06-06
Android自定义控件 倒计时
2018-06-05
Android 使用代码实现一个选词(拖拽)填空题
2018-06-05
Android 使用代码实现一个填空题
2018-06-05
使用Java实现串口通信demo下载
2017-10-11
Android Retrofit + RxJava使用详解
2017-06-20
Android Dialog与软键盘的正确打开方式
2017-02-05
Android 流式布局FlowLayout 关键字标签
2017-01-03
Android自定义控件 旋转按钮
2017-01-03
Android自定义控件 温度旋转按钮
2017-01-03
Android自定义控件 温度旋转按钮
2017-01-03
Android自定义控件 芝麻信用分雷达图
2017-01-03
开源日志库Logger使用Demo
2016-12-27
使用java实现Xmodem协议
2016-12-16
MPAndroidChart折线图Demo
2016-12-14
Git-2.10.2-64-bit TortoiseGit-2.3.0.0-64bit
2016-11-26
Git-2.10.2-32-bit TortoiseGit-2.3.0.0-32bit
2016-11-26
Excel表格操作依赖包poi-3.9.jar和使用Demo
2016-10-13
java串口通信操作的jar包rxtx-2.2(内含32位与64位版本)
2016-08-24
java串口通信操作的jar包rxtx-2.2(32位/64位)
2016-08-24
java串口通信操作的jar包rxtx-2.2
2016-08-16
java串口通信操作的jar包rxtx-2.2-win-x64
2016-08-16
log4j-1.2.17
2016-08-15
jar打包工具fatjar_0.0.31
2016-08-10
Android 在Gradle中引用远程开源库,需要在混淆文件中配置吗?
2017-01-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人