Android應用開發UI控制項ImageSwitcher的使用

來源:互聯網
上載者:User

  本文來聊一聊AndroidUI開發中ImageSwitcher控制項的使用。ImageSwitcher控制項與ImageView類似,都可以用於顯示圖片,但是ImageSwitcher通過名字可以看出,主要是用於多張圖片的切換顯示。在本篇中,會介紹ImageSwitcher控制項的基本屬性的設定以及常用方法的調用。在最後會通過一個樣本Demo來展示本篇部落格中講到的一些內容。

  ImageSwitcher

  ImageSwitcher是一個圖片切換器,它間接繼承自FrameLayout類,和ImageView相比,多了一個功能,那就是它說顯示的圖片切換時,可以設定動畫效果,類似於淡進淡出效果,以及左進右出滑動等效果。

  既然ImageSwitcher是用來顯示圖片的控制項,AndroidAPI為我們提供了三種不同方法來設定不同的映像來源,方法有:

  setImageDrawable(Drawable):指定一個Drawable對象,用來給ImageSwitcher顯示。

  setImageResource(int):指定一個資源的ID,用來給ImageSwitcher顯示。

  setImageURL(URL):指定一個URL地址,用來給ImageSwitcher顯示URL指向的圖片資源。

  動畫效果設定

  上面介紹到,ImageSwitcher可以設定圖片切換時,動畫的效果。對於動畫效果的支援,是因為它繼承了ViewAnimator類,這個類中定義了兩個屬性,用來確定切入圖片的動畫效果和切出圖片的動畫效果:

  android:inAnimation:切入圖片時的效果。

  android:outAnimation:切出圖片時的效果。

  以上兩個屬性如果在XML中設定的話,當然可以通過XML資源檔自訂動畫效果,但是如果只是想使用Android內建的一些簡單的效果的話,需要設定參數為“@android:anim/AnimName”來設定效果,其中AnimName為指定的動畫效果。如果在代碼中設定的話,可以直接使用setInAnimation()和setOutAnimation()方法。它們都傳遞一個Animation的抽象對象,Animation用於描述一個動畫效果,一般使用一個AnimationUtils的工具類獲得。對於動畫效果,不是本片部落格的重點,關於Android的動畫效果,以後再詳細講解。

  對於動畫效果,一般定義在android.R.anim類中,它是一個final類,以一些int常量的形式,定義的樣式,這裡僅僅介紹兩組樣式,淡進淡出效果,以及左進右出滑動效果,如果需要其他效果,可以查閱官方文檔。

  fede_in:淡進。

  fade_out:淡出

  slide_in_left:從左滑進。

  slide_out_right: 從右滑出。

  一般使用的話,通過這些常量名稱就可以看出是什麼效果,這裡並不是強制Xxx_in_Xxx就一定對應了setInAnimation()方法,但是一般如果不成組設定的話,效果會很醜,建議還是成組的對應In和Out設定效果。

  ViewFactory

  在使用ImageSwitcher的時候,有一點特別需要注意的,需要通過setFactory()方法為它設定一個ViewSwitcher.ViewFactory介面,設定這個ViewFactory介面時需要實現makeView()方法,該方法通常會返回一個ImageView,而ImageSwitcher則負責顯示這個ImageView。如果不設定ViewFactory的話,ImageSwitcher將無法使用。通過官方文檔瞭解到,setFactory()方法被聲明在ViewSwitcher類中,而ImageSwitcher直接繼承自ViewSwitcher類。ViewSwitcher的功能與ImageSwitcher類似,只是ImageSwitcher用於展示圖片,而ViewSwitcher用於展示一些View視圖。

  可以這麼理解,通過ViewFactory中的makeView()方法返回一個新的View視圖,用來放入ViewSwitcher中展示,而對於ImageSwitcher而言,這裡通常返回的是一個ImageView。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.