CN107967102A - 一种Android系统中的视图控件 - Google Patents
一种Android系统中的视图控件 Download PDFInfo
- Publication number
- CN107967102A CN107967102A CN201711490029.2A CN201711490029A CN107967102A CN 107967102 A CN107967102 A CN 107967102A CN 201711490029 A CN201711490029 A CN 201711490029A CN 107967102 A CN107967102 A CN 107967102A
- Authority
- CN
- China
- Prior art keywords
- view
- dynamic
- sub
- control
- rotation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种Android系统中的视图控件,(1)初始化设定;(2)在底层图层中设置一个集合,用于保存所有添加的动态子视图的对象;(3)在动态子视图中设置参数,用于保存此动态子视图的大小和位置坐标;(4)在旋转控制控件中设置参数,用于保存此控件的位置坐标;(5)添加至少一个动态子视图,动态子视图上添加有旋转控制控件;(6)当触发屏幕按下事件时,捕获触点坐标,判断拖拽操作的具体动作,并转换成执行移动、缩放或旋转的操作。本发明,能和用户的拖拽操作产生互动,基于用户的拖拽,完成视图控件的移动,缩放和旋转动画效果,基于ViewGroup,对onInterceptTouch,onTouchEvent等事件重写,拖拽流畅,动画效果好。
Description
技术领域
本发明涉及视图控件的拖拽控制技术领域,具体说是一种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中,所述拖拽操作为单点触控操作,
当具体动作为触摸动态子视图中心点后横向或纵向或斜向移动时,转换成执行移动操作,
当具体动作为沿动态子视图中心点斜向移动且触摸区域非动态子视图中心点时,转换成执行缩放操作,
当具体动作为沿动态子视图中心点弧线移动时,转换成执行旋转操作。
在上述技术方案的基础上,执行移动操作时,横向或纵向或斜向移动的距离,为移动操作中的结束位置,动态子视图中心为移动操作的起始位置,
执行缩放操作时,斜向移动的距离,为缩放比例,缩放操作的基准点为动态子视图中心,
执行旋转操作时,弧线移动的距离,为旋转角度,旋转操作的基准点为动态子视图中心。
本发明所述的Android系统中的视图控件,能和用户的拖拽操作产生互动,基于用户的拖拽,完成视图(View)控件的移动,缩放和旋转动画效果,基于ViewGroup,对onInterceptTouch,onTouchEvent等事件重写,拖拽流畅,动画效果好。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的Android系统中的视图控件,包括如下步骤:
步骤1,初始化设定,至少设定以下内容:
设定一个基于RelativeLayout的底层透明视图,底层透明视图用于容纳并显示动态子视图;即设定了一个底层透明视图容器;
设定一个基于RelativeLayout的动态子视图,放置在底层透明视图之上,动态子视图用于动态移动,缩放和旋转;
设定一个基于View的旋转控制控件,放置在动态子视图之上,旋转控制控件用于控制动态子视图基于视图中心进行缩放或旋转;
步骤2,在底层图层中设置一个集合,用于保存所有添加的动态子视图的对象;
步骤3,在动态子视图中设置参数,用于保存此动态子视图的大小和位置坐标;
步骤4,在旋转控制控件中设置参数,用于保存此控件的位置坐标;
步骤5,添加至少一个动态子视图,动态子视图上添加有旋转控制控件;
步骤6,当触发屏幕按下事件时,捕获触点坐标,判断拖拽操作的具体动作,并转换成执行移动、缩放或旋转的操作。
在上述技术方案的基础上,设定底层透明视图时,重写底层透明视图的onInterceptTouch,onTouchEvent事件,
设定动态子视图时,重写动态子视图的onInterceptTouch,onTouchEvent事件,
设定旋转控制控件时,然后重新旋转控制控件的onTouchEvent事件。
在上述技术方案的基础上,步骤5的具体步骤为:
新建一个动态子视图,
在新建的动态子视图上某个位置添加一个旋转控制控件,
将新建的动态子视图添加到底层透明视图中。
在上述技术方案的基础上,在底层透明视图添加一个函数computeIntercept()用于判断当前触点位置否要位于某个动态子视图之上。
更进一步,通过函数computeIntercept()对触点位置坐标进行计算,判断该位置下的动态子视图,并拦截当前用户的点击事件进行下一步处理。
在上述技术方案的基础上,在底层透明视图添加一个函数computeMove(),用于判断拖拽操作的具体动作;
在底层透明视图添加一个函数computeMoveControlPos(),用于响应执行移动操作
在底层透明视图添加一个函数computeSizeAndRetation(),用于响应执行缩放操作和执行旋转操作。
更进一步,函数computeMove()在触点Move事件触发后,根据手指点击位置判断应该进行移动动画还是缩放和旋转动画,如果具体动作发生在旋转控制控件上就调用omputeSizeAndRetation()函数实现缩放和旋转,否则,调用computeMoveControlPos()函数实现移动。
作为可选择的实施方案之一,computeSizeAndRetation():以当前动态子视图的大小和旋转角度为基础,通过二维坐标数轴和三角函数指来计算出新的位置,然后布局并保存。
作为可选择的实施方案之一,computeMoveControlPos():以当前动态子视图的大小和旋转角度为基础,通过二维坐标数轴计算出移动新的位置,然后布局并保存。
在上述技术方案的基础上,步骤6中,所述拖拽操作为单点触控操作,
当具体动作为触摸动态子视图中心点后横向或纵向或斜向移动时,转换成执行移动操作,
当具体动作为沿动态子视图中心点斜向移动且触摸区域非动态子视图中心点时,转换成执行缩放操作,
当具体动作为沿动态子视图中心点弧线移动时,转换成执行旋转操作。
在上述技术方案的基础上,执行移动操作时,横向或纵向或斜向移动的距离,为移动操作中的结束位置,动态子视图中心为移动操作的起始位置,
执行缩放操作时,斜向移动的距离,为缩放比例,缩放操作的基准点为动态子视图中心,
执行旋转操作时,弧线移动的距离,为旋转角度,旋转操作的基准点为动态子视图中心。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (8)
1.一种Android系统中的视图控件,其特征在于,包括如下步骤:
步骤1,初始化设定,至少设定以下内容:
设定一个基于RelativeLayout的底层透明视图,底层透明视图用于容纳并显示动态子视图;
设定一个基于RelativeLayout的动态子视图,放置在底层透明视图之上,动态子视图用于动态移动,缩放和旋转;
设定一个基于View的旋转控制控件,放置在动态子视图之上,旋转控制控件用于控制动态子视图基于视图中心进行缩放或旋转;
步骤2,在底层图层中设置一个集合,用于保存所有添加的动态子视图的对象;
步骤3,在动态子视图中设置参数,用于保存此动态子视图的大小和位置坐标;
步骤4,在旋转控制控件中设置参数,用于保存此控件的位置坐标;
步骤5,添加至少一个动态子视图,动态子视图上添加有旋转控制控件;
步骤6,当触发屏幕按下事件时,捕获触点坐标,判断拖拽操作的具体动作,并转换成执行移动、缩放或旋转的操作。
2.如权利要求1所述的Android系统中的视图控件,其特征在于:设定底层透明视图时,重写底层透明视图的onInterceptTouch,onTouchEvent事件,
设定动态子视图时,重写动态子视图的onInterceptTouch,onTouchEvent事件,
设定旋转控制控件时,然后重新旋转控制控件的onTouchEvent事件。
3.如权利要求1所述的Android系统中的视图控件,其特征在于:步骤5的具体步骤为:
新建一个动态子视图,
在新建的动态子视图上某个位置添加一个旋转控制控件,
将新建的动态子视图添加到底层透明视图中。
4.如权利要求3所述的Android系统中的视图控件,其特征在于:在底层透明视图添加一个函数computeIntercept()用于判断当前触点位置否要位于某个动态子视图之上。
5.如权利要求3所述的Android系统中的视图控件,其特征在于:在底层透明视图添加一个函数computeMove(),用于判断拖拽操作的具体动作;
在底层透明视图添加一个函数computeMoveControlPos(),用于响应执行移动操作
在底层透明视图添加一个函数computeSizeAndRetation(),用于响应执行缩放操作和执行旋转操作。
6.如权利要求5所述的Android系统中的视图控件,其特征在于:如果具体动作发生在旋转控制控件上就调用omputeSizeAndRetation()函数实现缩放和旋转,否则,调用computeMoveControlPos()函数实现移动。
7.如权利要求1所述的Android系统中的视图控件,其特征在于:步骤6中,所述拖拽操作为单点触控操作,
当具体动作为触摸动态子视图中心点后横向或纵向或斜向移动时,转换成执行移动操作,
当具体动作为沿动态子视图中心点斜向移动且触摸区域非动态子视图中心点时,转换成执行缩放操作,
当具体动作为沿动态子视图中心点弧线移动时,转换成执行旋转操作。
8.如权利要求7所述的Android系统中的视图控件,其特征在于:执行移动操作时,横向或纵向或斜向移动的距离,为移动操作中的结束位置,动态子视图中心为移动操作的起始位置,
执行缩放操作时,斜向移动的距离,为缩放比例,缩放操作的基准点为动态子视图中心,
执行旋转操作时,弧线移动的距离,为旋转角度,旋转操作的基准点为动态子视图中心。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711490029.2A CN107967102A (zh) | 2017-12-29 | 2017-12-29 | 一种Android系统中的视图控件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711490029.2A CN107967102A (zh) | 2017-12-29 | 2017-12-29 | 一种Android系统中的视图控件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107967102A true CN107967102A (zh) | 2018-04-27 |
Family
ID=61993253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711490029.2A Pending CN107967102A (zh) | 2017-12-29 | 2017-12-29 | 一种Android系统中的视图控件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107967102A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776588A (zh) * | 2018-06-10 | 2018-11-09 | 北京酷我科技有限公司 | 一种点赞效果的优化算法 |
CN109375864A (zh) * | 2018-09-27 | 2019-02-22 | 武汉华中时讯科技有限责任公司 | 通过手势显示窗口的装置、方法及存储介质 |
CN110221722A (zh) * | 2019-05-27 | 2019-09-10 | 掌阅科技股份有限公司 | 图片处理方法、电子设备及存储介质 |
CN112925593A (zh) * | 2019-12-05 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 一种目标图层缩放旋转的方法和装置 |
CN113641437A (zh) * | 2021-08-16 | 2021-11-12 | 深圳技德智能科技研究院有限公司 | 一种Linux兼容Android的应用界面旋转方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094584A (zh) * | 2014-05-16 | 2015-11-25 | 北大方正集团有限公司 | 视图缩放处理方法和视图缩放处理装置 |
US20170235473A1 (en) * | 2014-08-11 | 2017-08-17 | Huawei Technologies, Co., Ltd. | Method and Apparatus for Loading Application Program View, and Electronic Terminal |
CN107340964A (zh) * | 2017-06-02 | 2017-11-10 | 武汉斗鱼网络科技有限公司 | 一种视图的动画效果实现方法及装置 |
-
2017
- 2017-12-29 CN CN201711490029.2A patent/CN107967102A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094584A (zh) * | 2014-05-16 | 2015-11-25 | 北大方正集团有限公司 | 视图缩放处理方法和视图缩放处理装置 |
US20170235473A1 (en) * | 2014-08-11 | 2017-08-17 | Huawei Technologies, Co., Ltd. | Method and Apparatus for Loading Application Program View, and Electronic Terminal |
CN107340964A (zh) * | 2017-06-02 | 2017-11-10 | 武汉斗鱼网络科技有限公司 | 一种视图的动画效果实现方法及装置 |
Non-Patent Citations (2)
Title |
---|
ROBERT_CYSY: "Android拖动,缩放,自定义内容,控件制作(可拖动缩放RelativeLayout定制)", 《HTTPS://BLOG.CSDN.NET/ROBERT_CYSY/ARTICLE/DETAILS/73656428?UTM_MEDIUM=DISTRIBUTE.PC_RELEVANT.NONE-TASK-BLOG-BLOGCOMMENDFROMMACHINELEARNPAI2-2.NONECASE&DEPTH_1-UTM_SOURCE=DISTRIBUTE.PC_RELEVANT.NONE-TASK-BLOG-BLOGCOMMENDFROMMACHINELEARNPAI2-2.NONECAS * |
又吹风_BASSY: "【Android开发】View的平移、缩放、旋转以及位置、坐标系", 《HTTPS://BLOG.CSDN.NET/EIEIHIHI/ARTICLE/DETAILS/45668189》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776588A (zh) * | 2018-06-10 | 2018-11-09 | 北京酷我科技有限公司 | 一种点赞效果的优化算法 |
CN109375864A (zh) * | 2018-09-27 | 2019-02-22 | 武汉华中时讯科技有限责任公司 | 通过手势显示窗口的装置、方法及存储介质 |
CN109375864B (zh) * | 2018-09-27 | 2021-05-07 | 武汉华中时讯科技有限责任公司 | 通过手势显示窗口的装置、方法及存储介质 |
CN110221722A (zh) * | 2019-05-27 | 2019-09-10 | 掌阅科技股份有限公司 | 图片处理方法、电子设备及存储介质 |
CN110221722B (zh) * | 2019-05-27 | 2022-09-30 | 掌阅科技股份有限公司 | 图片处理方法、电子设备及存储介质 |
CN112925593A (zh) * | 2019-12-05 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 一种目标图层缩放旋转的方法和装置 |
CN113641437A (zh) * | 2021-08-16 | 2021-11-12 | 深圳技德智能科技研究院有限公司 | 一种Linux兼容Android的应用界面旋转方法及装置 |
CN113641437B (zh) * | 2021-08-16 | 2023-06-16 | 深圳技德智能科技研究院有限公司 | 一种Linux兼容Android的应用界面旋转方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107967102A (zh) | 一种Android系统中的视图控件 | |
CN107636593B (zh) | 提供虚拟绘图辅助工具并与其交互的设备、方法和介质 | |
US11592923B2 (en) | Systems and methods for resizing applications in a multitasking view on an electronic device with a touch-sensitive display | |
AU2016201303B2 (en) | Device, method, and graphical user interface for transitioning between touch input to display output relationships | |
US9448712B2 (en) | Application programming interfaces for scrolling operations | |
US7903115B2 (en) | Animations | |
CN105373291B (zh) | 一种界面切换方法及装置 | |
US8836646B1 (en) | Methods and apparatus for simultaneous user inputs for three-dimensional animation | |
US8593421B2 (en) | Local coordinate frame user interface for multitouch-enabled devices | |
KR20230167134A (ko) | 증강 및 가상 현실 환경들과 상호작용하기 위한 시스템들, 방법들, 및 그래픽 사용자 인터페이스들 | |
US10217253B2 (en) | Methods and apparatus for simulation of a stateful brush tip in a natural media drawing and/or painting simulation | |
AU2019283870A1 (en) | Systems and methods for multitasking on an electronic device with a touch-sensitive display | |
WO2017028436A1 (zh) | 一种绘图工具的实现方法、装置、设备和计算机存储介质 | |
US20140372939A1 (en) | Systems and methods for assisting in selection and placement of graphical objects in a graphical user interface | |
CN103793178A (zh) | 一种移动设备触摸屏中矢量图形编辑方法 | |
WO2016141597A1 (zh) | 一种触控方法、装置、终端及终端上的图形用户界面 | |
US10776907B2 (en) | Dynamic image resolution adjustment for rendering changes to graphical content | |
CN104978135A (zh) | 一种图标显示方法、装置及移动终端 | |
CN104978118B (zh) | 一种用户图形界面显示方法、装置及终端设备 | |
JP2016224804A (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
JP6945270B2 (ja) | スクリーン上の少なくとも1つのポインティング要素でツールを設定するためのコンピュータ実行方法 | |
CN117814723A (zh) | 磁控胶囊式内窥镜的移动控制设备、方法、装置及介质 | |
CN111026266A (zh) | 一种移动平台上编辑3d模型的交互方法及装置 | |
CN113678096A (zh) | 用于在计算机图形软件环境中处理命令的系统和方法 | |
CN113721911A (zh) | 虚拟场景的显示比例的控制方法、介质和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180427 |