Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android編程入門 >> Android控件第5類——ViewAnimator

Android控件第5類——ViewAnimator

編輯:Android編程入門

 

 

1、ViewAnimator,繼承自FrameLayout

  ViewAnimator是一個基類,它繼承自FrameLayout。它的子類有ViewSwitcher和ViewFlipper;ViewSwitcher的子類有ImageSwitcher和TextSwitcher。

  與AdapterViewAnimator類似,它也有android:inAnimation、android:outAnimation、android:animateFirstView屬性

  提供了addView(View)方法,可以使用這個方法向ViewAnimator添加需要切換的View,然後使用showPrevious和showNext進行向前和向後的切換

 

2、ViewSwitcher,繼承自ViewAnimator

  ViewSwitcher通過setFacotry(ViewFactory)關聯到ViewFactory,ViewSwitcher所使用的View對象就是由這個ViewFactory提供。

  ViewFactory只聲明了一個方法:public View makeView()。可以在這個方法中設置所有呈現的View包含什麼空間,以及呈現的樣式。

  AdapterViewAnimator的子類中沒有與ViewSwitcher對應的類。可以將ViewSwitcher獲取View的方式與AdapterViewAnimator比較,以便於記憶。AdapterViewAnimator使用Adpater來構造View對象;ViewSwitcher不使用Adapter對象,它使用ViewFactory來構造View。而且AdapterViewAnimator所使用的數據都在Adapter對象中;而ViewSwitcher對應的ViewFactory只構造View,View如何呈現由ViewFactory決定,但是所使用的數據,會另外提供,並不會體現在ViewFactory中。

  ViewSwitcher重寫了addView(View)方法,如果使用addView(View)方法,會拋出異常。這樣阻斷了通過addView(View)向ViewSwitcher中添加要切換的View的方式。可以在顯示下一個View的位置(比如向左滑動的事件中,或者點擊按鈕的事件中),通過ViewSwitcher對象的getNextView(),獲取下一個View的對象。然後在這個View對象上添加數據,然後調用showNext方法。

  ViewSwitcher只保存了兩個View(當前View和上一個View),所以只能追溯到前一個View。所以如果調用ViewSwitcher對象的showPrevious方法,只能是在當前View和前一個View之間來回切換。

 

3、ImageSwitcher,繼承自ViewSwitcher

  ImageSwitcher只是在ViewSwitcher的基礎上進行了簡單的修改,所以兩者有很多地方都很相似。比如,不能使用addView(View),只保存兩個ImageView,還包括需要使用ViewFactory等等。

  ImageSwitcher提供了setImageResource、setImageUri、setImageDrawable方法,可以通過這3個方法十分方便的設置下一個View將要顯示的內容。ViewSwitcher的使用方法在這3個方法中已經有所體現,所以不需要按照ViewSwitcher的方式來使用ImageSwitcher。

  與ViewSwitcher不同的是,ImageSwitcher的ViewFactory的makeView方法只能返回ImageView。因為上面提到的3個方法中,將ViewFactory傳遞過來的View強制轉換成了ImageView。

 

4、TextSwitcher,繼承自ViewSwitcher

  與ImageSwitcher相似,TextSwitcher也提供了一個setText方法,用於設置下一個TextView的文本。它也不能使用addView、只保留兩個TextView等等。

  TextSwitcher對應的ViewFactory的makeView方法也只能返回TextView。

  特別的是,TextView提供了一個setCurrentText方法,用於設置當前TextView的文本。

  TextSwitcher雖然重寫了addView方法,但只是加了一些限制,所以依然不能使用addView方法。

 

5、ViewFlipper,繼承自ViewAnimator

  ViewFlipper並沒有對ViewAnimator進行太多的修改,所以ViewFlipper可以使用addView方法增加View。

  ViewSwitcher只能保存兩個View,而ViewFlipper沒有這樣的限制。

  ViewFlipper在ViewAnimator的基礎上,提供了startFlipping和stopFlipping方法,用於開始和停止自動播放;setFlipInterval用於設置自動播放的間隔時間。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved