日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android总结 之 View系统学习(一)

發布時間:2024/2/28 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android总结 之 View系统学习(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. View的體系結構

view是Android 所有控件的基類,ViewGroup相當于View的結合,一些Layout,如FrameLayout、LinearLayout和RelativeLayout都是繼承于ViewGroup。

二. View的屬性

  • getTop()
  • getButtom()
  • getRight()
  • getLeft()
  • getHeiht()
  • getWidth()
  • View通過點擊事件點擊到的點也能通過MotionEvent得到信息:

  • getX() 點到控件左邊的距離
  • getY() 點到控件頂邊的距離
  • getRawX() 點到屏幕左邊的距離
  • getRawY() 點到屏幕右邊的距離
  • 三. View的滑動

  • layout() 傳參左上右下
  • offsetLeftAndRight() 和 offsetTopAndButtom() 左右上下
  • setLayoutParams 直接設置參數
  • 動畫 添加動畫之后這個view會回到之前的位置,除非設置fillAfter=“true”
  • scrollATo()位移到的位置 scrollBy()位移的多少
  • scroller 第五節詳細介紹
  • 四. Animator動畫

  • ObjectAnimoator:
  • 靜態工廠:ObjectAnimator.ofFloat(view,propertiesName,values)其中propertiesName包括:

    translationX、translationY平移、rotation、rotationX、rotationY圍繞View支點旋轉、alpha透明度、x、y最終位置

  • ValueAnimator 數值發生器,產生一定規律的數字,讓調用者控制動畫的過程
  • 動畫有四個狀態:start,repeat,end,cancel,我們可以對這幾個過程進行監聽。大部分時間onAnimationEnd這個過程比較重要。
  • 動畫組:AnimatorSet(建造者模式 AnimatorSet.builder)
  • 函數解釋
    after(Animator anim)現有動畫插入到傳入動畫之后執行
    after(Animator anim)現有動畫延遲指定毫秒后執行
    before(Animator anim)現有動畫插入到傳入動畫之前
    with(Animator anim)將現有動畫和傳入動畫同時執行

    五. Scroller的執行過程

    六. View的組成

    其中,Activity包含一個Window對象,這個對象是由PhoneWindow來實現的,PhoneWindow將DecorView作為整個應用窗口的根View,DecorView將屏幕分成兩個FrameLayout,一個是TitleView,一個是ContentView。

    七. 事件分發機制

    寫一段事件分發的偽代碼:

    public boolean dispatchTouchEvent(MotionEvent ev){boolean result = false;if(onInterceptTouchEvent(ev)){result = super.onTouchEvent(ev);}else{result = child.disatchTouchEvent(ev);}return result; }

    點擊事件是從上往下的傳遞規則,當點擊事件產生后,由Activity來處理,傳遞給PhoneWindow,再傳遞給DecorView,最后傳遞給頂層的viewGroup。

    如果該ViewGroup的onInterceptTouchEvent方法返回true代表他要攔截這個事件,這個事件就會交給這個view的onTouchEvent來處理,如果返回false則代表他不攔截這個事件,交給他的子元素dispatchTouchEvent來處理,所以,一直到最底層的View,由于View沒有子View,就會調用該View的onTouchEvent方法。

    點擊事件的處理是從下而上的,傳到底層的View時,如果這個View不能處理(OnTouchEvent返回false),那么回傳遞給父類,調用他的onTouchEvent()處理,以此類推,直到被處理。

    總結

    以上是生活随笔為你收集整理的Android总结 之 View系统学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。