没有合适的资源?快使用搜索试试~ 我知道了~
0. 昨天又看了一遍黑客帝国,怎么说了,时隔多年,依旧那么经典,小时候看不懂,现在再看却有很多体味。小时候看时印象最深的就是数字雨了,导致我现在写代码也要是黑屏。所以今天上午,闲来无事,拿出两个小时写了一个数字雨控件,直接上图。 1. 先分析,再动笔。这里我将代码分为两部分,一个数字雨中的每一列NumberRainItem,还有就是所有列合并起来的NumberRain。 NumberRain比较简单,就是继承自LinearLayout的一个控件,在计算出宽度后添加NumberRainItem,很简单,这里就不作说明了,这里主要说一下NumberRainItem控件。 2. 每一个Numb
资源详情
资源评论
资源推荐
Android自定义自定义View实现黑客帝国数字雨效果实现黑客帝国数字雨效果
0.
昨天又看了一遍黑客帝国,怎么说了,时隔多年,依旧那么经典,小时候看不懂,现在再看却有很多体味。小时候看时印象最
深的就是数字雨了,导致我现在写代码也要是黑屏。所以今天上午,闲来无事,拿出两个小时写了一个数字雨控件,直接上
图。
1.
先分析,再动笔。这里我将代码分为两部分,一个数字雨中的每一列NumberRainItem,还有就是所有列合并起来的
NumberRain。
NumberRain比较简单,就是继承自LinearLayout的一个控件,在计算出宽度后添加NumberRainItem,很简单,这里就不作说
明了,这里主要说一下NumberRainItem控件。
2.
每一个NumberRainItem分为两个部分,从上向下流下来的状态,现在称其为下流状态,下流状态时最后一个数字是高亮的;
第二个状态就是布满全屏后的状态,称其为完全状态。完全状态时高亮数字是从上向下顺序高亮的。想好以后就开搞吧。
3.
上代码
override fun onDraw(canvas: Canvas?)
{
super.onDraw(canvas)
configPaint()
canvas?.let {
if (isShowAllNumber())
{
drawTotalNumbers(it)
} else
{
drawPartNumbers(it)
}
}
}
看onDraw方法,里面的drawParNumbers方法就是用来绘制下流状态,自然drawTotalNumbers就是绘制完全状态的。究竟绘
制那个状态是有isShowAllNumber方法来判断的
private fun isShowAllNumber(): Boolean
{
return nowHeight >= height
}
其中nowHeight是一个成员变量,代表着现在所有文字的高度,在下流状态,每次多绘制一个文字,就会增加一个文字的高
度。
weixin_38671048
- 粉丝: 4
- 资源: 871
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0