【移动应用开发技术】Android自定义View如何实现QQ运动积分转盘抽奖功能_第1页
【移动应用开发技术】Android自定义View如何实现QQ运动积分转盘抽奖功能_第2页
【移动应用开发技术】Android自定义View如何实现QQ运动积分转盘抽奖功能_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android自定义View如何实现QQ运动积分转盘抽奖功能

这篇文章主要讲解了Android自定义View如何实现QQ运动积分转盘抽奖功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。因为偶尔关注QQ运动,看到QQ运动的积分抽奖界面比较有意思,所以就尝试用自定义View实现了下,原本想通过开发者选项查看下界面的一些信息,后来发现积分抽奖界面是在WebView中展示的,应该是在H5页面中用js代码实现的,暂时不去管它了。这里的自定义View针对的是继承自View的情况,你可以将Canvas想象为画板,Paint为画笔,自定义View的过程和在画板上用画笔作画其实类似,想象在画板上作画的过程,你要画一个多大图形(对应View的测量onMeasure方法),你要画什么样的图形,比如圆形方形等等(对应View的onDraw方法),在掌握了View的一些基础概念(位置参数、触摸事件、滑动),测量模式、事件分发机制、绘制流程等知识后,自定义View的时候就不觉得复杂了。不管是多么复杂的View,其内部基本都可以拆分至一个个小单元,比如如下的QQ运动积分抽奖画面,(QQ-->动态-->运动-->我-->积分)这里我们只关注抽奖的转盘,因为是截图没有动画效果,具体可以在自己的手机上查看下。这个抽奖的界面看似复杂,其实可以分为几个部分1.最外层圆环,其中有小圆圈闪动2,内部圆角矩形3.

内部圆角卡片(包含一个图片或说明文字)

第一步:我们要继承View类,如果需要自定义属性则应该实现带三个参数的构造方法,这里将自定义View命名为LotteryView在init方法中可以做一些初始化的操作,比如需要用的颜色值,画笔Paint,宽高信息等,如果有自定义属性,也可以在init方法中处理。接着可以设定View的宽高信息,这里我们将View设置为正方形调用setMeasureDimension方法,宽高都设置为mSelfTotalWidth。这里我们宽高是限定的值,所以不需要的处理不同测量模式的情况,如果是其他自定义View要支持wrap_content属性,需要在onMeasure方法中自行处理第一步:绘制外层带圆角的圆环绘制外层圆环中的小圆圈第二步:绘制内部的圆角矩形,即卡片所在区域的背景第三步:绘制内部小卡片全部绘制完成后,在onTouchEvent中处理点击事件即可,如何判定我们点击的是抽奖的区域,这里使用对比位置信息的方法,如下将每一个小卡片的坐标信息(left,top,right,bottom)信息,保存在ArrayList<Pair<Pair<Integer,Integer>,Pair<Integer,Integer>>>

mCardPosttionInfoList中,当点击VIe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论