成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

View與ViewGroup的位置參數、觸摸事件坐標及手勢識別

開發 前端
「坐標與手勢識別」了解MotionEvent中的坐標對于識別和理解用戶的手勢(如滑動、點擊、縮放等)至關重要。例如,通過比較連續觸摸事件的坐標變化,可以識別出用戶是否在進行滑動操作,以及滑動的方向和距離。

View與ViewGroup

View和ViewGroup是Android中最基本的UI組件,在構建Android應用程序的用戶界面時起著核心作用。

  1. 「View」:

定義:View表示屏幕上的一個獨立的可見元素。是Android平臺中用戶界面體現的基礎單位,是一個可見的矩形區域,可以響應用戶的交互事件。

示例:TextView、ImageView、Button等都是View的具體實例。這些元素各自提供了特定的UI功能和交互方式。

繼承關系:View繼承自android.view.View類。

用途:View是布局中的實際頁面元素,構成了用戶界面的基礎內容。

  1. 「ViewGroup」:

定義:ViewGroup表示屏幕上的一個容器,能夠包含其他View或ViewGroup。是一種特殊的View,用于組織和管理其子View的布局和層次結構。

示例:LinearLayout、RelativeLayout、FrameLayout等都是ViewGroup的具體實例。這些容器各自提供了不同的布局方式和管理策略。

繼承關系:ViewGroup繼承自View類。ViewGroup本質上也是一個View,但具有額外的功能來容納和管理其他View。

用途:ViewGroup用于控制其內部View的視圖結構,如控制子View的排列方向、間隔大小等。在Android中,布局是由View和ViewGroup共同組成的。

View位置參數

View的位置參數主要決定了其在屏幕上的具體位置和大小。

圖片圖片

  • 「top」:表示View左上角的縱坐標。相對于其父容器(ViewGroup)的頂部邊緣的距離。
  • 「left」:表示View左上角的橫坐標。相對于其父容器(ViewGroup)的左側邊緣的距離。
  • 「right」:表示View右下角的橫坐標。相對于其父容器(ViewGroup)的左側邊緣的距離。View的寬度(width)可以通過right - left計算得出。
  • 「bottom」:表示View右下角的縱坐標。相對于其父容器(ViewGroup)的頂部邊緣的距離。View的高度(height)可以通過bottom - top計算得出。
//View坐標的四個參數的獲?。篻etLeft(),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值也會相應地改變。

從Android 3.0開始,View還增加了以下幾個額外的參數:

  • 「x」:表示View左上角的橫坐標(包括任何平移變換)。這個值是通過left + translationX計算得出的。
  • 「y」:表示View左上角的縱坐標(包括任何平移變換)。這個值是通過top + translationY計算得出的。
  • 「translationX」:表示View在水平方向上相對于其原始位置的偏移量。
  • 「translationY」:表示View在垂直方向上相對于其原始位置的偏移量。

這些額外的參數可以對View進行更復雜的變換和動畫效果,例如平移、旋轉等。

MotionEvent坐標

MotionEvent的坐標主要涉及到觸摸事件在屏幕上的具體位置,這些位置信息對于理解用戶的手勢和操作至關重要。

圖片圖片

  1. 「相對坐標與絕對坐標」

「相對坐標」:通過getX()和getY()方法獲取的坐標是相對于當前消費這個事件的視圖(View)的左上點的坐標。坐標是相對于觸發事件的特定View的,而不是整個屏幕。

「絕對坐標」:通過getRawX()和getRawY()方法獲取的坐標是相對于整個屏幕的,即屏幕左上角為原點(0,0)的坐標系統。

  1. 「坐標值的解釋」

當觸摸事件發生時,使用getX()和getY()來獲取觸摸點相對于當前View左上角的x和y坐標。例如,如果觸摸點位于View的中心,并且View的大小為200x200像素,那么getX()和getY()可能會返回接近100的值(假設沒有滾動或變換)。

getRawX()和getRawY()將返回觸摸點相對于屏幕左上角的坐標。無論觸摸點在哪個View上,getRawX()和getRawY()都將返回相同的值(只要觸摸點的屏幕位置沒有改變)。

  1. 「示例代碼」
@Override
public 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中的坐標對于識別和理解用戶的手勢(如滑動、點擊、縮放等)至關重要。例如,通過比較連續觸摸事件的坐標變化,可以識別出用戶是否在進行滑動操作,以及滑動的方向和距離。

責任編輯:武曉燕 來源: 沐雨花飛蝶
相關推薦

2012-02-28 14:07:17

Android觸摸屏手勢識別

2013-04-22 15:40:00

Android開發觸摸事件與點擊事件區別

2017-04-27 21:00:33

Android滑動分析

2013-05-14 11:08:23

AIR Android觸摸事件鼠標事件

2022-11-30 07:49:49

交互事件屏幕手勢識別

2010-09-10 10:09:26

Android

2021-12-06 10:27:32

XWayland觸摸板手勢開發

2013-05-21 11:20:37

Android游戲開發View手勢識別

2021-08-11 14:29:20

鴻蒙HarmonyOS應用

2022-05-17 12:25:59

物聯網智能建筑樓宇自控

2016-12-08 22:59:47

觸摸事件android

2024-06-20 11:11:07

2021-09-17 06:55:50

AndroidLayoutView

2013-05-22 15:49:46

2011-08-02 16:28:40

iPhone Web開發 事件

2013-04-15 15:22:06

2017-01-11 18:44:43

React Nativ觸摸事件Android

2011-09-02 14:33:26

微軟手勢Metro Style

2023-03-10 16:40:21

Frameworkinput觸摸事件

2013-05-07 17:21:09

ELMOS芯片手勢識別
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品三区 | 又黄又色 | 黄色在线免费观看视频网站 | 亚洲视频免费在线 | 久久这里只有精品首页 | 成人高潮片免费视频欧美 | 日韩精品一区二区三区中文字幕 | 亚洲视频欧美视频 | 久久久久久久久久久久一区二区 | 久久久久九九九九 | 日韩欧美一级片 | 久久一| 免费一区二区在线观看 | 日一日操一操 | 91欧美| 亚洲美女一区二区三区 | 国产精品1区 | 欧美日韩国产在线观看 | 91精品一区 | 免费视频成人国产精品网站 | 国产精品久久久久久久一区探花 | 亚洲一区二区三区在线播放 | 亚洲一区二区三区在线免费观看 | 成人做爰9片免费看网站 | 久久99久久99久久 | 国产第一页在线观看 | 国产精品99久久久久久久久 | 国产一级在线观看 | 欧美在线一区二区三区 | 一级毛片免费完整视频 | 国产成人免费在线观看 | 91原创视频 | 色欧美片视频在线观看 | 亚洲精品一区二区三区在线 | 中文字幕一区二区三区乱码在线 | 久久久精品视频一区二区三区 | 午夜小视频在线播放 | 羞羞视频网站免费观看 | 久久久久久国产精品三区 | 一区二区视频在线 | 国外成人在线视频网站 |