View和ViewGroup是Android中最基本的UI組件,在構建Android應用程序的用戶界面時起著核心作用。
定義:View表示屏幕上的一個獨立的可見元素。是Android平臺中用戶界面體現的基礎單位,是一個可見的矩形區域,可以響應用戶的交互事件。
示例:TextView、ImageView、Button等都是View的具體實例。這些元素各自提供了特定的UI功能和交互方式。
繼承關系:View繼承自android.view.View類。
用途:View是布局中的實際頁面元素,構成了用戶界面的基礎內容。
定義:ViewGroup表示屏幕上的一個容器,能夠包含其他View或ViewGroup。是一種特殊的View,用于組織和管理其子View的布局和層次結構。
示例:LinearLayout、RelativeLayout、FrameLayout等都是ViewGroup的具體實例。這些容器各自提供了不同的布局方式和管理策略。
繼承關系:ViewGroup繼承自View類。ViewGroup本質上也是一個View,但具有額外的功能來容納和管理其他View。
用途:ViewGroup用于控制其內部View的視圖結構,如控制子View的排列方向、間隔大小等。在Android中,布局是由View和ViewGroup共同組成的。
View的位置參數主要決定了其在屏幕上的具體位置和大小。
圖片
//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值也會相應地改變。
從Android 3.0開始,View還增加了以下幾個額外的參數:
這些額外的參數可以對View進行更復雜的變換和動畫效果,例如平移、旋轉等。
MotionEvent的坐標主要涉及到觸摸事件在屏幕上的具體位置,這些位置信息對于理解用戶的手勢和操作至關重要。
圖片
「相對坐標」:通過getX()和getY()方法獲取的坐標是相對于當前消費這個事件的視圖(View)的左上點的坐標。坐標是相對于觸發事件的特定View的,而不是整個屏幕。
「絕對坐標」:通過getRawX()和getRawY()方法獲取的坐標是相對于整個屏幕的,即屏幕左上角為原點(0,0)的坐標系統。
當觸摸事件發生時,使用getX()和getY()來獲取觸摸點相對于當前View左上角的x和y坐標。例如,如果觸摸點位于View的中心,并且View的大小為200x200像素,那么getX()和getY()可能會返回接近100的值(假設沒有滾動或變換)。
getRawX()和getRawY()將返回觸摸點相對于屏幕左上角的坐標。無論觸摸點在哪個View上,getRawX()和getRawY()都將返回相同的值(只要觸摸點的屏幕位置沒有改變)。
@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;}
本文鏈接:http://www.tebozhan.com/showinfo-26-95395-0.htmlView與ViewGroup的位置參數、觸摸事件坐標及手勢識別
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com