自定义view之 电池充电view动画

最近研究了下android的绘图,看到论坛有需求要画一个充电的电池,所以就拿来练手,实现的效果就是不停的充电,然后动态改变充电进度的颜色。

实现效果如图:


首先分析一下布局:

1.总体上,先画一个大的圆角矩形,再根据圆角矩形的大小,来画一个三分之一高的小矩形。

2.执行时,根据传来的进度值,来填充一个绿色的矩形在里面。

3.难点在于需要判断当绿色的矩形触碰到字体时,要让字体呈现变色的状态,这就要利用到canvas的drawClipRect来同步绘制字体,当进度更新到字体的bouds边界时,让canvas根据进度跟新来绘制一部分字体,然后根据进度来绘制剩余字体的颜色。

4,其中比较容易出错的就是边界的计算与绘制字体drawClipRect方法的应用。


好吧,分析完了,现在来实现方法:

首先在attrs下新建属性:

<declare-styleable name="BatteryView">
        <attr name="contentTextsize" format="dimension"></attr>
        <attr name="batteryColor" format="color"></attr>
        <attr name="borderWidther" format="dimension"></attr>
    </declare-styleable>


然后就是常规的自定view:


package com.nicming.mvptestdemo.canvas_practice;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值