Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 控件之ImageSwitcher圖片切換器

Android 控件之ImageSwitcher圖片切換器

編輯:Android開發實例

ImageSwitcher是Android中控制圖片展示效果的一個控件,如:幻燈片效果...,頗有感覺啊。做相冊一絕

源碼下載

 

一、重要方法

    setImageURI(Uri uri):設置圖片地址

    setImageResource(int resid):設置圖片資源庫

    setImageDrawable(Drawable drawable):繪制圖片

二、實例

  1.    <ImageSwitcher android:id="@+id/switcher" 
  2.         android:layout_width="match_parent" 
  3.         android:layout_height="match_parent" 
  4.         android:layout_alignParentTop="true" 
  5.         android:layout_alignParentLeft="true" 
  6.     /> 
  7.       
  8.     <Gallery android:id="@+id/gallery" 
  9.         android:background="#55000000" 
  10.         android:layout_width="match_parent" 
  11.         android:layout_height="60dp" 
  12.         android:layout_alignParentBottom="true" 
  13.         android:layout_alignParentLeft="true" 
  14.           
  15.         android:gravity="center_vertical" 
  16.         android:spacing="16dp" 
  17.     /> 
  18.  

 

is = (ImageSwitcher) findViewById(R.id.switcher);

is.setFactory(this);

 

設置動畫效果

  is.setInAnimation(AnimationUtils.loadAnimation(this,
    android.R.anim.fade_in));
  is.setOutAnimation(AnimationUtils.loadAnimation(this,
    android.R.anim.fade_out));

  

三、完整代碼

1.布局文件

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  4.     android:layout_width="match_parent"   
  5.     android:layout_height="match_parent">   
  6.       
  7.     <ImageSwitcher android:id="@+id/switcher" 
  8.         android:layout_width="match_parent" 
  9.         android:layout_height="match_parent" 
  10.         android:layout_alignParentTop="true" 
  11.         android:layout_alignParentLeft="true" 
  12.     /> 
  13.       
  14.     <Gallery android:id="@+id/gallery" 
  15.         android:background="#55000000" 
  16.         android:layout_width="match_parent" 
  17.         android:layout_height="60dp" 
  18.         android:layout_alignParentBottom="true" 
  19.         android:layout_alignParentLeft="true" 
  20.           
  21.         android:gravity="center_vertical" 
  22.         android:spacing="16dp" 
  23.     /> 
  24.  
  25. </RelativeLayout> 
  26.  

  2.Java代碼

 

  1. package wjq.WidgetDemo;  
  2.  
  3. import android.app.Activity;  
  4. import android.content.Context;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.ViewGroup;  
  8. import android.view.Window;  
  9. import android.view.animation.AnimationUtils;  
  10. import android.widget.AdapterView;  
  11. import android.widget.BaseAdapter;  
  12. import android.widget.Gallery;  
  13. import android.widget.ImageSwitcher;  
  14. import android.widget.ImageView;  
  15. import android.widget.AdapterView.OnItemClickListener;  
  16. import android.widget.AdapterView.OnItemSelectedListener;  
  17. import android.widget.Gallery.LayoutParams;  
  18. import android.widget.ViewSwitcher.ViewFactory;  
  19.  
  20. public class ImageSwitcherDemo extends Activity implements 
  21.   OnItemSelectedListener, ViewFactory {  
  22.  private ImageSwitcher is;  
  23.  private Gallery gallery;  
  24.  
  25.  private Integer[] mThumbIds = { R.drawable.b, R.drawable.c,  
  26.    R.drawable.d, R.drawable.f, R.drawable.g,  
  27.    };  
  28.  
  29.  private Integer[] mImageIds = { R.drawable.b, R.drawable.c,  
  30.    R.drawable.d, R.drawable.f, R.drawable.g, };  
  31.  
  32.  /*  
  33.   * (non-Javadoc)  
  34.   *   
  35.   * @see android.app.Activity#onCreate(android.os.Bundle)  
  36.   */ 
  37.  @Override 
  38.  protected void onCreate(Bundle savedInstanceState) {  
  39.   // TODO Auto-generated method stub  
  40.   super.onCreate(savedInstanceState);  
  41.   requestWindowFeature(Window.FEATURE_NO_TITLE);  
  42.   setContentView(R.layout.imageswitcherpage);  
  43.  
  44.   is = (ImageSwitcher) findViewById(R.id.switcher);  
  45.   is.setFactory(this);  
  46.  
  47.   is.setInAnimation(AnimationUtils.loadAnimation(this,  
  48.     android.R.anim.fade_in));  
  49.   is.setOutAnimation(AnimationUtils.loadAnimation(this,  
  50.     android.R.anim.fade_out));  
  51.  
  52.   gallery = (Gallery) findViewById(R.id.gallery);  
  53.  
  54.   gallery.setAdapter(new ImageAdapter(this));  
  55.   gallery.setOnItemSelectedListener(this);  
  56.  }  
  57.  
  58.  @Override 
  59.  public View makeView() {  
  60.   ImageView i = new ImageView(this);  
  61.   i.setBackgroundColor(0xFF000000);  
  62.   i.setScaleType(ImageView.ScaleType.FIT_CENTER);  
  63.   i.setLayoutParams(new ImageSwitcher.LayoutParams(  
  64.     LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));  
  65.   return i;  
  66.  }  
  67.  
  68.  public class ImageAdapter extends BaseAdapter {  
  69.   public ImageAdapter(Context c) {  
  70.    mContext = c;  
  71.   }  
  72.  
  73.   public int getCount() {  
  74.    return mThumbIds.length;  
  75.   }  
  76.  
  77.   public Object getItem(int position) {  
  78.    return position;  
  79.   }  
  80.  
  81.   public long getItemId(int position) {  
  82.    return position;  
  83.   }  
  84.  
  85.   public View getView(int position, View convertView, ViewGroup parent) {  
  86.    ImageView i = new ImageView(mContext);  
  87.  
  88.    i.setImageResource(mThumbIds[position]);  
  89.    i.setAdjustViewBounds(true);  
  90.    i.setLayoutParams(new Gallery.LayoutParams(  
  91.      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));  
  92.    i.setBackgroundResource(R.drawable.e);  
  93.    return i;  
  94.   }  
  95.  
  96.   private Context mContext;  
  97.  
  98.  }  
  99.  
  100.  @Override 
  101.  public void onItemSelected(AdapterView<?> parent, View view, int position,  
  102.    long id) {  
  103.   is.setImageResource(mImageIds[position]);  
  104.  
  105.  }  
  106.  
  107.  @Override 
  108.  public void onNothingSelected(AdapterView<?> parent) {  
  109.   // TODO Auto-generated method stub  
  110.  
  111.  }  
  112.  
  113. }  

轉自:http://www.cnblogs.com/salam/archive/2010/10/06/1844660.html

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