android 自定义view实现 游戏血量条。带减血缓冲,颜色变化。

本文介绍了一种简单的方法来实现Android游戏中的血量条效果,通过继承View并定义两个Rect,利用当前进度与总进度的比例来调整主血条宽度。同时,通过一个for循环和sleep实现缓冲血条的渐变效果,当血量增加时缓冲条直接变化,减少时则渐变,从而达到缓冲追逐主血条的视觉效果。
摘要由CSDN通过智能技术生成

网上找了半天,想继承progressbar实现太麻烦,不如自己写呢。

这个实现是比较简单的。继承view,定义两个Rect,通过(currentProgress*view的width)/totalProgress获得当前主血条的width,改变Rect的right值来改变矩形长度来模仿进度条。

缓冲血条通过一个for循环+sleep,循环的结点是主血条的rect的right点。由于for循环在线程中,所以当缓冲渐变过程中主血量进行变化,则for循环结点也随之变化,就会实现缓冲血条“追逐”主血条的效果。

此次血量大于上一次,缓冲血条直接变化;当此次血量小于上一次,缓冲血条才进行渐变。

上代码,代码可能不太规范,可能有的异常情况没考虑, 不过正常使用是没问题。。

/**
 * Created by dup on 16-1-26.
 */
public class BloodProgress extends View {

	/**
	 * 缓冲时间 700ms
	 */
	private static final int DELTATIME = 700;
	
	/**
	 * 第一血条
	 */
	private RectF mFirst_rect;
	private int mFirstColor;
	private Paint mFirstPaint;
	/**
	 * 第二血条
	 */
	private RectF mSecond_rect;
	private 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值