Android如何自定义View实现数字雨效果(android,view,开发技术)

时间:2024-04-30 12:27:30 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

效果图

在安卓中多种类型的动画,有帧动画、补间动画、属性动画,除此之外,使用自定义的View结合数学公式,就可以绘制出复杂的界面或者动画。这篇文章记录的是仿照黑客帝国的数字雨,来看看效果吧。

Android如何自定义View实现数字雨效果

实现步骤

准备工作,常量的配置信息

//文字的颜色值finalintDEFAULT_TEXT_COLOR=Color.argb(255,0,255,70);//文字大小finalintTEXT_SIZE=24;//普通画笔PaintmPaint;//高亮画笔PaintmPaintLight;//改变文字的间隔时间intswitchInternal=interval[random.nextInt(interval.length)];//数字落下的速度intspeed;

构建显示文本的内容,因为计算机都是由0和1组成,所以这里用0和1代表它的内容数据。

//构建0和1的字符串if(contentArray==null){contentArray=newString[2];contentArray[0]="0";contentArray[1]="1";}

由于是随机显示,所以使用随机数获取内容

privateStringgetChar(){returncontentArray[random.nextInt(2)];}

由于是自定义View,所以入口就在自定义View的构造函数中。

publicNumberView(Contextcontext,AttributeSetattrs,intdefStyleAttr){super(context,attrs,defStyleAttr);init();}

在init方法中对上面的配置信息进行初始化,比如创建具体的画笔颜色,文字大小等

privatevoidinit(){mPaint=newPaint(Paint.ANTI_ALIAS_FLAG);mPaint.setARGB(255,0,255,70);mPaint.setTextSize(TEXT_SIZE);a=textColor>>24&0xff;r=textColor>>16&0xff;g=textColor>>8&0xff;b=textColor&0xff;mPaint.setARGB(a,r,g,b);mPaintLight=newPaint(Paint.ANTI_ALIAS_FLAG);mPaintLight.setARGB(255,140,255,170);mPaintLight.setTextSize(TEXT_SIZE);}

在onMeasure方法中测量View的大小,View本身大小多少,这由onMeasure()决定的。

@OverrideprotectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){super.onMeasure(widthMeasureSpec,heightMeasureSpec);intwidthSize=MeasureSpec.getSize(widthMeasureSpec);intwidthMode=MeasureSpec.getMode(widthMeasureSpec);intheightSize=MeasureSpec.getSize(heightMeasureSpec);intheightMode=MeasureSpec.getMode(heightMeasureSpec);if(widthMode==MeasureSpec.EXACTLY){mWidth=widthSize;}if(heightMode==MeasureSpec.EXACTLY){mHeight=heightSize;}setMeasuredDimension((int)mWidth,(int)mHeight);}

onDraw()定义了如何绘制这个View,所以在onDraw方法中,必须要进行绘制操作,这样才能显示出来动画。

@OverrideprotectedvoidonDraw(Canvascanvas){super.onDraw(canvas);render(canvas);rain();}privatevoidrain(){for(intj=0;j<streams.length;j++){Symbol[]symbols=(Symbol[])streams[j];for(inti=0;i<symbols.length;i++){Symbolsymbol=symbols[i];symbol.y=symbol.y>=mHeight?0:symbol.y+symbol.speed;}}}

无论是怎样的操作,自定义View总是离不开onMeasure onLayout onDraw的核心方法。比如我们要绘制一幅画,也需要这样设计,它的大小、位置、和绘制成什么样。就像这些代码的方法。 onMeasure:决定视图的大小 onLayout:决定视图的位置

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Android如何自定义View实现数字雨效果的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Linux如何在关机前查看在线用户并发出通知下一篇:

11 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18