MPAndroidChart自定义坐标轴显示位置

MPAndroidChart是一个非常强大的控件库,并且可定制性非常的强。但是在使用时,有一个需求是,
Y坐标轴上的所有数值必须要在图标内部,那么就需要对Y坐标轴的渲染方式进行定制了。

首先创建一个类YAxisRendererFix继承自YAxisRenderer,内部会重写一个方法
drawYLabels,这就是对Y轴文字渲染的关键方法了,你看Canvas都给你了。

介绍一下这四个参数:

  • Canvas c: 画笔,通过canvas来绘制你的文字,在这里就可以定制文字绘制的位置了。
  • float fixedPosition: X轴位置
  • float[] positions: Y轴位置,由于是Y轴的文字,所以所有需要绘制的文字位置作为一个数组。
  • float offset: setYOffset里面的那个偏移值,如果没设置就是0。

Android Drawable动画的实现

有一个需求,需要做一个简单的动画,UI讲动画每一帧的图片都交给了我,那么该如何去做呢?

这里使用了animation-list来实现此功能,实现方式也很简单,在drawable下创建对应的xml文件即可。

创建动画Drawable

相关参数介绍:

  • oneshot: 动画是否只执行一次 true 只执行一次 false 循环播放动画
  • android:duration: 动画每一张播放的长度,单位ms

Android AES加解密

项目需要对特定数据进行加密,看了一下网上的很多实现,在不同版本的安卓上需要做一些特殊处理。那么我想试着编写一个通用性比较强,不需要对版本进行适配的AES加解密库。
这个库还可以将AES的密文进行Base64编码之后进行传输,算是功能上的补充。

AES 加密

生成加解密Key

使用SecretKeySpec来将给定数组生成对应的key,由于这里是AES加密,所以algorithm为"AES"

1
SecretKeySpec keySpec = new SecretKeySpec(key, algorithm);

UDP与JavaUDP操作

UDP是什么

  • 全称 User Datagram Protocol
  • 一种用户数据报协议,又称用户数据报文协议
  • 是一个简单的面向数据报的传输层协议,正式规范为RFC 768
  • 用户数据协议、非连接协议

UDP为什么不可靠

  • 它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份
  • UDP在IP数据报的头部,仅仅加入了复用和数据校验(字段)
  • 发送端生产数据,接收端从网络中抓取数据
  • 结构简单、无校验、速度快、容易丢包、可广播

解决Dagger2+DataBinding编译错误提示问题

项目中使用了Dragger2+DataBinding这两个基于Annotation的库,这种库依赖于编译期生成代码来使用。但是他们之间会相互影响,一但一个出错了,会导致Annotation编译时中断。这时Java部分编译检查就会爆出大量的错误,错误原因基本都是DataBinding和Dragger编译期生成的中间类无法找到。这时由于默认编译器只会显示100条错误信息,就会导致我们无法定位到真正的错误位置。

Android自定义Loading提示框

工作需要一个自定义的Loading提示框,那么比起从网络上找第三方库修改,从零做一个Loading更能学到更多的知识,那么我们开始吧。

制作一个旋转的Loading控件

  • 首先需要自定义View来承载动画
  • 创建LoadingView继承自View
  • 初始化画笔和图片资源
1
2
3
4
5
6
7
private void init() {   
paint = new Paint();
//画笔 抗锯齿
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
//图片资源
loadingPic = decodeResource(getResources(), R.drawable.ic_loading);
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×