Android 图片切换,ImageSwitcher 学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/birdsaction/article/details/3414676

下面一个简单例子 学习 ImageSwitcher 类,

这个类 可以 切换显示图片 , 就像windows中的 自带的图片浏览器一样. 也可以制作简单的幻灯片。

 

  1. package com.birds.andorid.image;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.Window;
  6. import android.view.View.OnClickListener;
  7. import android.view.animation.AnimationUtils;
  8. import android.widget.Button;
  9. import android.widget.ImageSwitcher;
  10. import android.widget.ImageView;
  11. import android.widget.RelativeLayout;
  12. import android.widget.ViewSwitcher;
  13. /**
  14.  * 
  15.  * @author birds
  16.  * @date 2008-11-30
  17.  */
  18. public class ImageShow extends Activity implements OnClickListener,
  19.         ViewSwitcher.ViewFactory {
  20.     private ImageSwitcher switcher;
  21.     private static final int NEXT_BUTTON = 0x345255;
  22.     private static final int PRE_BUTTON = 0x345256;
  23.     private static final int SWITCHER = 0x9394;
  24.     private static final Integer[] IMAGE_LIST = { R.drawable.image001,
  25.             R.drawable.image002, R.drawable.java_image };
  26.     private static int index = 0;
  27.     private static final int LEN = IMAGE_LIST.length;
  28.     @Override
  29.     public void onCreate(Bundle savedInstanceState) {
  30.         super.onCreate(savedInstanceState);
  31.         requestWindowFeature(Window.FEATURE_NO_TITLE);
  32.         RelativeLayout main_view = new RelativeLayout(this);
  33.         switcher = new ImageSwitcher(this);
  34.         main_view.addView(switcher);
  35.         switcher.setId(SWITCHER);
  36.         switcher.setFactory(this);
  37.         switcher.setImageResource(IMAGE_LIST[index]);
  38.         setContentView(main_view);
  39.         Button next = new Button(this);
  40.         next.setId(NEXT_BUTTON);
  41.         next.setText("下一张");
  42.         next.setOnClickListener(this);
  43.         RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(80,
  44.                 80);
  45.         param.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, SWITCHER);
  46.         main_view.addView(next, param);
  47.         param = new RelativeLayout.LayoutParams(8080);
  48.         Button pre = new Button(this);
  49.         pre.setText("前一张");
  50.         pre.setId(PRE_BUTTON);
  51.         pre.setOnClickListener(this);
  52.         param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, NEXT_BUTTON);
  53.         main_view.addView(pre, param);
  54.     }
  55.     @Override
  56.     public void onClick(View v) {
  57.         switch (v.getId()) {
  58.         case NEXT_BUTTON:
  59.             index++;
  60.             if (index >= LEN) {
  61.                 index = 0;
  62.             }
  63.             switcher.setImageResource(IMAGE_LIST[index]);
  64.             break;
  65.         case PRE_BUTTON:
  66.             index--;
  67.             if (index < 0) {
  68.                 index = LEN - 1;
  69.             }
  70.             switcher.setImageResource(IMAGE_LIST[index]);
  71.             break;
  72.         default:
  73.             break;
  74.         }
  75.     }
  76.     @Override
  77.     public View makeView() {
  78.         return new ImageView(this);
  79.     }
  80. }

这个ImageSwitcher  类 ,必须设置一个 视图工厂,这个主要是用来显示 图片的地方,,和父窗口独立的,

 实例化 ViewSwitcher.ViewFactory  接口,,

 有一个 makeView()方法 就是用来 显示图片的 view , 

这里就简单的 返回了 默认的  new ImageVIew(this) 。

switcher.setImageResource(IMAGE_LIST[index]); 这个可以 显示指定的图片资源 。默认情况下是第一张图片。

当点击一下 按钮 ,就会切换到相应的图片。

官方的Android文档中,javadoc 并没有过多的对这个类 进行解释 。也许不太常用。。

 

下面是显示效果.

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页