当前位置:首页 > 科技  > 软件

View与ViewGroup的位置参数、触摸事件坐标及手势识别

来源: 责编: 时间:2024-06-21 08:34:26 251观看
导读View与ViewGroupView和ViewGroup是Android中最基本的UI组件,在构建Android应用程序的用户界面时起着核心作用。「View」:定义:View表示屏幕上的一个独立的可见元素。是Android平台中用户界面体现的基础单位,是一个可见的

View与ViewGroup

View和ViewGroup是Android中最基本的UI组件,在构建Android应用程序的用户界面时起着核心作用。kCg28资讯网——每日最新资讯28at.com

  1. 「View」:

定义:View表示屏幕上的一个独立的可见元素。是Android平台中用户界面体现的基础单位,是一个可见的矩形区域,可以响应用户的交互事件。kCg28资讯网——每日最新资讯28at.com

示例:TextView、ImageView、Button等都是View的具体实例。这些元素各自提供了特定的UI功能和交互方式。kCg28资讯网——每日最新资讯28at.com

继承关系:View继承自android.view.View类。kCg28资讯网——每日最新资讯28at.com

用途:View是布局中的实际页面元素,构成了用户界面的基础内容。kCg28资讯网——每日最新资讯28at.com

  1. 「ViewGroup」:

定义:ViewGroup表示屏幕上的一个容器,能够包含其他View或ViewGroup。是一种特殊的View,用于组织和管理其子View的布局和层次结构。kCg28资讯网——每日最新资讯28at.com

示例:LinearLayout、RelativeLayout、FrameLayout等都是ViewGroup的具体实例。这些容器各自提供了不同的布局方式和管理策略。kCg28资讯网——每日最新资讯28at.com

继承关系:ViewGroup继承自View类。ViewGroup本质上也是一个View,但具有额外的功能来容纳和管理其他View。kCg28资讯网——每日最新资讯28at.com

用途:ViewGroup用于控制其内部View的视图结构,如控制子View的排列方向、间隔大小等。在Android中,布局是由View和ViewGroup共同组成的。kCg28资讯网——每日最新资讯28at.com

View位置参数

View的位置参数主要决定了其在屏幕上的具体位置和大小。kCg28资讯网——每日最新资讯28at.com

图片图片kCg28资讯网——每日最新资讯28at.com

  • 「top」:表示View左上角的纵坐标。相对于其父容器(ViewGroup)的顶部边缘的距离。
  • 「left」:表示View左上角的横坐标。相对于其父容器(ViewGroup)的左侧边缘的距离。
  • 「right」:表示View右下角的横坐标。相对于其父容器(ViewGroup)的左侧边缘的距离。View的宽度(width)可以通过right - left计算得出。
  • 「bottom」:表示View右下角的纵坐标。相对于其父容器(ViewGroup)的顶部边缘的距离。View的高度(height)可以通过bottom - top计算得出。
//View坐标的四个参数的获取:getLeft(),getTop(),getRight(),getBottom()left = getLeft();top = getTop();right = getRight();bottom = getBottom();//View宽高的获取width = getWidth();height = getHeight();//坐标和View宽高的关系width = right-left;height = bottom-top;

坐标都是相对于其父容器的,也就是说,如果一个View被放置在一个具有不同位置的ViewGroup内部,那么它的top、left、right和bottom值也会相应地改变。kCg28资讯网——每日最新资讯28at.com

从Android 3.0开始,View还增加了以下几个额外的参数:kCg28资讯网——每日最新资讯28at.com

  • 「x」:表示View左上角的横坐标(包括任何平移变换)。这个值是通过left + translationX计算得出的。
  • 「y」:表示View左上角的纵坐标(包括任何平移变换)。这个值是通过top + translationY计算得出的。
  • 「translationX」:表示View在水平方向上相对于其原始位置的偏移量。
  • 「translationY」:表示View在垂直方向上相对于其原始位置的偏移量。

这些额外的参数可以对View进行更复杂的变换和动画效果,例如平移、旋转等。kCg28资讯网——每日最新资讯28at.com

MotionEvent坐标

MotionEvent的坐标主要涉及到触摸事件在屏幕上的具体位置,这些位置信息对于理解用户的手势和操作至关重要。kCg28资讯网——每日最新资讯28at.com

图片图片kCg28资讯网——每日最新资讯28at.com

  1. 「相对坐标与绝对坐标」

「相对坐标」:通过getX()和getY()方法获取的坐标是相对于当前消费这个事件的视图(View)的左上点的坐标。坐标是相对于触发事件的特定View的,而不是整个屏幕。kCg28资讯网——每日最新资讯28at.com

「绝对坐标」:通过getRawX()和getRawY()方法获取的坐标是相对于整个屏幕的,即屏幕左上角为原点(0,0)的坐标系统。kCg28资讯网——每日最新资讯28at.com

  1. 「坐标值的解释」

当触摸事件发生时,使用getX()和getY()来获取触摸点相对于当前View左上角的x和y坐标。例如,如果触摸点位于View的中心,并且View的大小为200x200像素,那么getX()和getY()可能会返回接近100的值(假设没有滚动或变换)。kCg28资讯网——每日最新资讯28at.com

getRawX()和getRawY()将返回触摸点相对于屏幕左上角的坐标。无论触摸点在哪个View上,getRawX()和getRawY()都将返回相同的值(只要触摸点的屏幕位置没有改变)。kCg28资讯网——每日最新资讯28at.com

  1. 「示例代码」
@Overridepublic boolean onTouchEvent(MotionEvent event) {    float x = event.getX(); // 获取相对坐标的x值    float y = event.getY(); // 获取相对坐标的y值    float rawX = event.getRawX(); // 获取绝对坐标的x值    float rawY = event.getRawY(); // 获取绝对坐标的y值        return true;}
  1. 「坐标与手势识别」了解MotionEvent中的坐标对于识别和理解用户的手势(如滑动、点击、缩放等)至关重要。例如,通过比较连续触摸事件的坐标变化,可以识别出用户是否在进行滑动操作,以及滑动的方向和距离。

kCg28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-95395-0.htmlView与ViewGroup的位置参数、触摸事件坐标及手势识别

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 如何“玩”转业务协同?大型央企晒出安全运营“实战”经验

下一篇: 国家图书馆《山海经》知识库向公众开放,免费提供海量书影、数字化长卷

标签:
  • 热门焦点
  • 中兴AX5400Pro+上手体验:再升级 双2.5G网口+USB 3.0这次全都有

    2021年11月的时候,中兴先后发布了两款路由器产品,中兴AX5400和中兴AX5400 Pro,从产品命名上就不难看出这是隶属于同一系列的,但在外观设计上这两款产品可以说是完全没一点关系
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 10天营收超1亿美元,《星铁》比《原神》差在哪?

    来源:伯虎财经作者:陈平安即便你没玩过《原神》,你一定听说过的它的大名。恨它的人把《原神》开服那天称作是中国游戏史上最黑暗的一天,有粉丝因为索尼在PS平台上线《原神》,怒而
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • 四年持续更迭坚持探索行业无人之境,HarmonyOS 4带来五大升级多项创新

    除了华为每年新发布的旗舰手机系列,上亿花粉更加期待鸿蒙系统每次的跨版本大更新。8月4日,HarmonyOS 4于HDC 2023正式发布,这也是该系统历经四年的再
Top