《Android》『Gallery』- 左右滑動圖庫瀏覽元件的基本用法

《Android Developers 參考文獻》

➥Gallery  (This class was deprecated in API level 16, Android 4.1)

 

《簡單介紹》

今天要來介紹的是在 Android 4.1 的版本以後,已經不再支援的祖先級元件『Gallery』,它是一個橫向滑動的圖片瀏覽元件,有點類似畫廊的感覺,目前 google 建議的替代方案是用 HorizontalScrollView 或者是 ViewPager 來取代,但缺點是在 Gallery 中預留的介面特性必須一一重寫,幸好我們還有另一個辦法,就是在 GitHub 上有一個神人提供了自製元件『EcoGallery』,不僅更省效能,其所定義的方法與用法大部分皆與 Gallery 一致,同時並保留了 Gallery 的許多介面特性,對於初學者來說會是比較好上手且無痛的替代方案。

《自訂一個繼承 BaseAdapter 的 Adapter》

SpinnerGridViewListView 元件一樣,Gallery 必須透過一個 Adapter 來設定它的資料來源以及介面格式,這邊我們宣告一個繼承自 BaseAdapter 的 Adapter,並命名為 GalleryAdapter,程式碼片段如下 –

GalleryAdapter.java

我們透過建構子傳入 Gallery 的項目內容 mItemList,並且宣告一個名為 mLayoutInflater 的 LayoutInflater,用以把自訂介面 gallery_view_item.xml 中所表述的 layout 轉化為 View。 

在 getView() 中,我們宣告了一個 View 物件來定義 Gallery 中顯示在這個 position 的 Item 的 View, 因此為了要讓 Gallery 使用自訂的介面,我們將自訂介面 gallery_view_item.xml 透過 mLayoutInflater 指定給它,因此,Gallery 的每一個 Item 介面會一致的變成 gallery_view_item.xml 的樣式,接著,我們再將 gallery_view_item.xml 中所宣告的不同元件(ImageView, TextView)定義好行為即可。

gallery_view_item.xml

我們自訂了一個名為 gallery_view_item.xml 的介面,裡面包含了一個 ImageView 與 TextView,並在GalleryAdapter 中的 getView() 方法中指定這個介面為每個 item 的 layout。

接著,在 MainActivity 中宣告 Gallery 並使用定義好的 GalleryAdapter,程式碼片段如下 –

MainActivity.java

activity_main.xml

string.xml

相信眼尖的讀者會發現,這邊的程式碼範例跟 ListView 中的範例幾乎一模一樣,差別只在於使用 ListView 或者是 Gallery 元件而已。透過這種使用方式,Gallery 亦可以擁有高度自由化的介面設計。

賽肥膩膩

我們是低調到不行的肥膩夫妻檔,一路上一邊吵鬧一邊記錄著生活大小事,最近迷上了宅在家追劇,希望能透過文字將所有看過的影集好好紀錄,整理成屬於我們自己的回憶資料庫。

上 / 下一篇文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *