天天看點

Android 中文 API (35) —— ImageSwitcher

一、結構

    public class ImageSwitcher extends ViewSwitcher

    java.lang.Object

        android.view.ViewGroup

          android.widget.FrameLayout

            android.widget.ViewAnimator

              android.widget.ViewSwitcher

                android.widget.ImageSwitcher

二、概述

    

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

三、公共方法

         public void setImageDrawable (Drawable drawable)

         繪制圖檔

 public void setImageResource (int resid)

   設定圖檔資源庫

 public void setImageURI (Uri uri)

  設定圖檔位址

四、補充

    4.1  文章連結

      java檔案

public class mainactivity extends Activity implements

  OnItemSelectedListener, ViewFactory {

 private ImageSwitcher is;

 private Gallery gallery;

 private Integer[] mThumbIds = { R.drawable.b, R.drawable.c,

   R.drawable.d, R.drawable.f, R.drawable.g,

   };

 private Integer[] mImageIds = { R.drawable.b, R.drawable.c,

   R.drawable.d, R.drawable.f, R.drawable.g, };

@Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  requestWindowFeature(Window.FEATURE_NO_TITLE);

  setContentView(R.layout.main);

  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));

  gallery = (Gallery) findViewById(R.id.gallery);

  gallery.setAdapter(new ImageAdapter(this));

  gallery.setOnItemSelectedListener(this);

 }

 @Override

 public View makeView() {

  ImageView i = new ImageView(this);

  i.setBackgroundColor(0xFF000000);

  i.setScaleType(ImageView.ScaleType.FIT_CENTER);

  i.setLayoutParams(new ImageSwitcher.LayoutParams(

    LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

  return i;

 public class ImageAdapter extends BaseAdapter {

  public ImageAdapter(Context c) {

   mContext = c;

  }

  public int getCount() {

   return mThumbIds.length;

  public Object getItem(int position) {

   return position;

  public long getItemId(int position) {

  public View getView(int position, View convertView, ViewGroup parent) {

   ImageView i = new ImageView(mContext);

   i.setImageResource(mThumbIds[position]);

   i.setAdjustViewBounds(true);

   i.setLayoutParams(new Gallery.LayoutParams(

     LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

   i.setBackgroundResource(R.drawable.e);

   return i;

  private Context mContext;

 public void onItemSelected(AdapterView<?> parent, View view, int position,

   long id) {

  is.setImageResource(mImageIds[position]);

 public void onNothingSelected(AdapterView<?> parent) {

}

      xml檔案

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="match_parent" 

    android:layout_height="match_parent"> 

    <ImageSwitcher android:id="@+id/switcher"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:layout_alignParentTop="true"

        android:layout_alignParentLeft="true"

    />

    <Gallery android:id="@+id/gallery"

        android:background="#55000000"

        android:layout_height="60dp"

        android:layout_alignParentBottom="true"

        android:gravity="center_vertical"

        android:spacing="16dp"

</RelativeLayout>

繼續閱讀