TextView渲染HTML使用自定义标签

如果需要在一个TextView中,显示多种字体,颜色,大小,粗细等,一种方法是使用SpannableString,另外一种方法就是,使用Html.fromHtml()

但是默认tag比较的少,这里我只列出自己使用的几个,剩下的可以到文档中去查找
android.text.Html

用到过的tag:

  • <font color="#FFFFFF"> </font> 设置颜色
  • <b> </b> 加粗
  • <br/> 换行

Android实现截屏的两种方式

一个需要截屏的需求,并且如果可以做到的话,需要截取用户的状态栏图象。

方法1 使用View的DrawCache来获取当前显示的内容

优点:方法简单。
缺点:无法截取到状态栏的内容,包括时间,电量,wifi,4G状态等。

注意这里要使用Bitmap.createBitmap否则Bitmap可能会被回收造成崩溃。

1
2
3
4
View rootView = activity.getWindow().getDecorView().getRootView();
rootView.setDrawingCacheEnabled(true);
Bitmap drawingCache = Bitmap.createBitmap(rootView.getDrawingCache());
rootView.setDrawingCacheEnabled(false);

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);

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

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

Your browser is out-of-date!

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

×