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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android学习笔记26:图片切换控件ImageSwitcher的使用

發布時間:2025/4/5 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android学习笔记26:图片切换控件ImageSwitcher的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  在Windows操作系統中,要查看多張圖片,可以通過使用“Windows照片查看器”在“上一張”和“下一張”之間切換,進行多張圖片的瀏覽。

  在Android中,可以通過使用圖片切換控件ImageSwitcher來實現瀏覽多張圖片的功能。下面我們就通過一個實際的例子來說明圖片切換控件ImageSwitcher的使用方法。

?

1.界面布局

  在xml布局文件中,我們使用LinearLayout對整個界面進行垂直布局。在界面的頂端設置了一個水平居中的ImageSwitcher控件,用來顯示多張圖片。在ImageSwitcher控件的下面使用LinearLayout水平布局設置四個ImageButton按鈕,在點擊這些按鈕時分別用于實現右旋圖片、顯示上一張圖片、顯示下一張圖片、左旋圖片效果。整個布局文件很簡單,具體源碼如下:

1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" > 6 7 <ImageSwitcher 8 android:id="@+id/imageSwitcher" 9 android:layout_marginTop="5dp" 10 android:layout_gravity="center" 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" ></ImageSwitcher> 13 14 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 15 xmlns:tools="http://schemas.android.com/tools" 16 android:orientation="horizontal" 17 android:layout_marginTop="5dp" 18 android:layout_width="match_parent" 19 android:layout_height="match_parent" > 20 21 <!-- 右旋箭頭 --> 22 <ImageButton 23 android:id="@+id/rightrotatearrow" 24 android:layout_marginLeft="30dp" 25 android:layout_width="wrap_content" 26 android:layout_height="wrap_content" 27 android:src="@drawable/rightrotatearrow" ></ImageButton> 28 29 <!-- 前一個箭頭 --> 30 <ImageButton 31 android:id="@+id/forwardarrow" 32 android:layout_width="wrap_content" 33 android:layout_height="wrap_content" 34 android:src="@drawable/forwardarrow" ></ImageButton> 35 36 <!-- 下一個箭頭 --> 37 <ImageButton 38 android:id="@+id/nextarrow" 39 android:layout_width="wrap_content" 40 android:layout_height="wrap_content" 41 android:src="@drawable/nextarrow" ></ImageButton> 42 43 <!-- 左旋箭頭 --> 44 <ImageButton 45 android:id="@+id/liftrotatearrow" 46 android:layout_width="wrap_content" 47 android:layout_height="wrap_content" 48 android:src="@drawable/liftrotatearrow" ></ImageButton> 49 50 </LinearLayout> 51 52 </LinearLayout>

  程序運行后的效果如圖1所示。

圖1?主界面

?

2.ViewFactory接口

  要將圖片顯示在ImageSwitcher控件中,必須為ImageSwitcher類設置一個ViewFactory,用來將顯示的圖片和父窗口區分開來。這可以通過如下方法來實現:

  mImageSwitcher.setFactory();

  此外,我們還需要實現ViewSwitcher.ViewFactory接口中的makeView()抽象方法,通過該方法可以返回一個ImageView對象,所有圖片都將通過該ImageView對象來進行顯示。具體實現方法如下:

1 /* 2 * Function : makeView() 3 * Describe : 將所有圖片通過ImageView來顯示 4 * Author : 博客園-依舊淡然 5 */ 6 public View makeView() { 7 return new ImageView(this); 8 }

?

3.存儲圖片資源

  在《Android學習筆記25:畫廊控件Gallery的使用》(http://www.cnblogs.com/menlsh/archive/2013/02/26/2934434.html)中,我們是通過使用一個繼承自BaseAdapter類的派生類ImageAdapter來存儲圖片資源的。?

  在該實例中,我們將新建一個ArrayList對象來存儲圖片資源,方法如下:

  List<Drawable>?list?=?new?ArrayList<Drawable>();

  然后,可以使用list.add()方法將圖片資源加載到該ArrayList對象中,具體方法如下:

1 //將圖片資源加載到ArrayList中 2 list.add(getResources().getDrawable(R.drawable.image1)); 3 list.add(getResources().getDrawable(R.drawable.image2)); 4 list.add(getResources().getDrawable(R.drawable.image3)); 5 list.add(getResources().getDrawable(R.drawable.image4));

  在該實例中,我們往ArrayList中加載了4張資源圖片。

?

4.獲取圖片資源

  當我們點擊“上一張”和“下一張”按鈕時,需要獲取圖片資源進行顯示,這該如何實現呢?

  通過查看ImageSwitcher的API幫助文檔(http://developer.android.com/reference/android/widget/ImageSwitcher.html),我們可以看出向ImageSwitcher加載圖片有以下三種方式:

  (1)public?void?setImageDrawable(Drawable?drawable);

  (2)public?void?setImageResource(int?resid);

  (3)public?void?setImageURI(Uri?uri);

  其中,setImageDrawable()方法通過Drawable對象來獲取圖片資源;setImageResource()方法通過圖片資源Id來獲取圖片資源;setImageURI()方法通過圖片的Uri路徑來獲取圖片資源。

  在該實例中,我們選擇使用setImageDrawable()方法來獲取圖片資源,這也就是為什么我們往ArrayList對象中存儲圖片時使用Drawable對象的原因。

?

5.按鍵處理

  在該實例中,我們還需要實現OnClickListener接口的onClick()方法,對四個按鍵進行事件監聽,具體實現方法如下:

1 /* 2 * Function : 事件監聽處理 3 * Author : 博客園-依舊淡然 4 */ 5 public void onClick(View v) { 6 switch (v.getId()) { 7 case R.id.forwardarrow: //向前箭頭按鈕按鍵處理 8 index--; 9 if (index < 0) { 10 index = list.size() - 1; 11 } 12 mImageSwitcher.setImageDrawable(list.get(index)); 13 break; 14 case R.id.nextarrow: //向后箭頭按鈕按鍵處理 15 index++; 16 if (index >= list.size()) { 17 index = 0; 18 } 19 mImageSwitcher.setImageDrawable(list.get(index)); 20 break; 21 case R.id.liftrotatearrow: //左旋箭頭按鈕按鍵處理 22 //TO DO 23 break; 24 case R.id.rightrotatearrow:   //右旋箭頭按鈕按鍵處理 25 //TO DO 26 break; 27 } 28 }

  其中,變量index用于對圖片進行索引,實現圖片的循環顯示,即當顯示到最后一張圖片時,再次點擊“下一張”,則將圖片索引號重置為0,然后重新顯示第一張圖片;當顯示第一張圖片時,再次點擊“上一張”,則將圖片的索引號重置為最大,然后顯示最后一張圖片。

  在該實例中,并未對“左旋”和“右旋”按鈕進行按鍵處理。要實現圖片的旋轉效果,請見博文《Android學習筆記11:圖像的平移、旋轉及縮放》(http://www.cnblogs.com/menlsh/archive/2012/12/02/2798802.html)。

?

?

總結

以上是生活随笔為你收集整理的Android学习笔记26:图片切换控件ImageSwitcher的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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