編輯:Android開發實例
前言
本章內容是android.view.ViewTreeObserver,版本為Android 3.0 r1,翻譯來自"首當其沖",再次感謝"首當其沖" 。
正文
一、結構
public final class ViewTreeObserver extends Object
java.lang.Object
android.view.ViewTreeObserver
二、概述
用於注冊監聽的視圖樹觀察者(observer),在視圖樹種全局事件改變時得到通知。這個全局事件不僅還包括整個樹的布局,從繪畫過程開始,觸摸模式的改變等。ViewTreeObserver不能夠被應用程序實例化,因為它是由視圖提供,參照getViewTreeObserver()
以查看更多信息。
三、內部類
interface ViewTreeObserver.OnGlobalFocusChangeListener
當在一個視圖樹中的焦點狀態發生改變時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnGlobalLayoutListener
當在一個視圖樹中全局布局發生改變或者視圖樹中的某個視圖的可視狀態發生改變時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnPreDrawListener
當一個視圖樹將要繪制時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnScrollChangedListener
當一個視圖樹中的一些組件發生滾動時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnTouchModeChangeListener
當一個視圖樹的觸摸模式發生改變時,所要調用的回調函數的接口類
四、公共方法
public void addOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener listener)
注冊一個回調函數,當在一個視圖樹中的焦點狀態發生改變時調用這個回調函數。
參數
listener 將要被添加的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void addOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener listener)
注冊一個回調函數,當在一個視圖樹中全局布局發生改變或者視圖樹中的某個視圖的可視狀態發生改變時調用這個回調函數。
參數
listener 將要被添加的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void addOnPreDrawListener (ViewTreeObserver.OnPreDrawListener listener)
注冊一個回調函數,當一個視圖樹將要繪制時調用這個回調函數。
參數
listener 將要被添加的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void addOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener listener)
注冊一個回調函數,當一個視圖發生滾動時調用這個回調函數。
參數
listener 將要被添加的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void addOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener listener)
注冊一個回調函數,當一個觸摸模式發生改變時調用這個回調函數。
參數
listener 將要被添加的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public final void dispatchOnGlobalLayout ()
當整個布局發生改變時通知相應的注冊監聽器。如果你強制對視圖布局或者在一個沒有附加到一個窗口的視圖的層次結構或者在GONE狀態下,它可以被手動的調用
public final boolean dispatchOnPreDraw ()
當一個視圖樹將要繪制時通知相應的注冊監聽器。如果這個監聽器返回true,則這個繪制將被取消並重新計劃。如果你強制對視圖布局或者在一個沒有附加到一個窗口的視圖的層次結構或者在一個GONE狀態下,它可以被手動的調用
返回值
當前繪制能夠取消並重新計劃則返回true,否則返回false。
public boolean isAlive ()
指示當前的ViewTreeObserver是否可用(alive)。當observer不可用時,任何方法的調用(除了這個方法)都將拋出一個異常。如果一個應用程序保持和ViewTreeObserver一個歷時較長的引用,它應該總是需要在調用別的方法之前去檢測這個方法的返回值。
返回值
但這個對象可用則返回true,否則返回false
public void removeGlobalOnLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim)
移除之前已經注冊的全局布局回調函數。
參數
victim 將要被移除的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void removeOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener victim)
移除之前已經注冊的焦點改變回調函數。
參數
victim 將要被移除的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void removeOnPreDrawListener (ViewTreeObserver.OnPreDrawListener victim)
移除之前已經注冊的預繪制回調函數。
參數
victim 將要被移除的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void removeOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener victim)
移除之前已經注冊的滾動改變回調函數。
參數
victim 將要被移除的回調函數
異常
IllegalStateException 如果isAlive() 返回false
public void removeOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener victim)
移除之前已經注冊的觸摸模式改變回調函數
參數
victim 將要被移除的回調函數
異常
IllegalStateException 如果isAlive() 返回falseAndroid提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
在android開發中ListView是比較常用的組件,它以列表的形式展示具體內容,並且能夠根據數據的長度自適應顯示。抽空把對ListView的使用做了整理,
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
效果: http://www.56.com/u82/v_OTM4MDk5MTk.html第一步: 創建anim文件夾放置動畫xml文件在res文件夾下,