[发明专利]一种Android系统中的视图控件在审
申请号: | 201711490029.2 | 申请日: | 2017-12-29 |
公开(公告)号: | CN107967102A | 公开(公告)日: | 2018-04-27 |
发明(设计)人: | 徐少鹏 | 申请(专利权)人: | 北京酷我科技有限公司 |
主分类号: | G06F3/0486 | 分类号: | G06F3/0486;G06F3/0488 |
代理公司: | 北京德和衡律师事务所11405 | 代理人: | 姚克枫 |
地址: | 100080 北京市海淀区农大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 系统 中的 视图 控件 | ||
技术领域
本发明涉及视图控件的拖拽控制技术领域,具体说是一种Android系统中的视图控件。
背景技术
在Android中已经提供了用于实现图形(图像)的动态移动(位移),缩放和旋转的动画效果的API,比如广泛使用Animations等。移动就是图形在屏幕上移动位置,缩放就是图形在屏幕上基于某个位置放大或缩小,旋转就是图形围绕中心点位置旋转一定的角度。
Animations是一个实现Android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。
Animations从总体上可以分为两大类:
1.Tweened Animations:该类Animations提供了旋转、移动、伸展和淡出等效果。Alpha——淡入淡出,Scale——缩放效果,Rotate——旋转,Translate——移动效果。
2.Frame-by-frame Animations:这一类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。
现有API存在的不足之处是:这些动画效果只能设置固定的时间,固定的位置,固定的角度,无法实现通过拖拽产生移动,缩放和旋转动画效果,无法和用户拖拽操作产生互动。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种Android系统中的视图控件,能和用户的拖拽操作产生互动,基于用户的拖拽,完成视图(View)控件的移动,缩放和旋转动画效果,基于ViewGroup,对onInterceptTouch,onTouchEvent等事件重写,拖拽流畅,动画效果好。
为达到以上目的,本发明采取的技术方案是:
一种Android系统中的视图控件,其特征在于,包括如下步骤:
步骤1,初始化设定,至少设定以下内容:
设定一个基于RelativeLayout的底层透明视图,底层透明视图用于容纳并显示动态子视图;
设定一个基于RelativeLayout的动态子视图,放置在底层透明视图之上,动态子视图用于动态移动,缩放和旋转;
设定一个基于View的旋转控制控件,放置在动态子视图之上,旋转控制控件用于控制动态子视图基于视图中心进行缩放或旋转;
步骤2,在底层图层中设置一个集合,用于保存所有添加的动态子视图的对象;
步骤3,在动态子视图中设置参数,用于保存此动态子视图的大小和位置坐标;
步骤4,在旋转控制控件中设置参数,用于保存此控件的位置坐标;
步骤5,添加至少一个动态子视图,动态子视图上添加有旋转控制控件;
步骤6,当触发屏幕按下事件时,捕获触点坐标,判断拖拽操作的具体动作,并转换成执行移动、缩放或旋转的操作。
在上述技术方案的基础上,设定底层透明视图时,重写底层透明视图的onInterceptTouch,onTouchEvent事件,
设定动态子视图时,重写动态子视图的onInterceptTouch,onTouchEvent事件,
设定旋转控制控件时,然后重新旋转控制控件的onTouchEvent事件。
在上述技术方案的基础上,步骤5的具体步骤为:
新建一个动态子视图,
在新建的动态子视图上某个位置添加一个旋转控制控件,
将新建的动态子视图添加到底层透明视图中。
在上述技术方案的基础上,在底层透明视图添加一个函数computeIntercept()用于判断当前触点位置否要位于某个动态子视图之上。
在上述技术方案的基础上,在底层透明视图添加一个函数computeMove(),用于判断拖拽操作的具体动作;
在底层透明视图添加一个函数computeMoveControlPos(),用于响应执行移动操作
在底层透明视图添加一个函数computeSizeAndRetation(),用于响应执行缩放操作和执行旋转操作。
在上述技术方案的基础上,如果具体动作发生在旋转控制控件上就调用omputeSizeAndRetation()函数实现缩放和旋转,否则,调用computeMoveControlPos()函数实现移动。
在上述技术方案的基础上,步骤6中,所述拖拽操作为单点触控操作,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京酷我科技有限公司,未经北京酷我科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711490029.2/2.html,转载请声明来源钻瓜专利网。