切换图片 ImageSwitcher

       我们在Windows 平台上要查看多张图片,最简单的办法就是通过 "Window 图片和传真查看器“在 ”下一张“ 和”上一张“之间切换,Android平台上可以通过 ImageSwitcher 类来实现这一效果。ImageSwitcher 类必须设置一个ViewFactory,主要用来将显示的图片和父窗口区分开来,因此需要实现ViewSwitcher.ViewFactory接口,通过makeView()方法来显示图片,这里会返回一个ImageView 对象,而方法 setImageResource用来指定图片资源。首先先让我们看看这个例子的运行效果。 

切换图片 ImageSwitcher_第1张图片 
示例 
Java代码
  1. package xiaohang.zhimeng;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.widget.Button;
  7. import android.widget.ImageSwitcher;
  8. import android.widget.ImageView;
  9. import android.widget.LinearLayout;
  10. import android.widget.ViewSwitcher.ViewFactory;

  11. public class Activity01 extends Activity implements OnClickListener,
  12. ViewFactory {
  13. // 所有要显示的图片资源索引
  14. private static final Integer[] imagelist = { R.drawable.img1,
  15. R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5,
  16. R.drawable.img6, R.drawable.img7, R.drawable.img8, };

  17. // 创建ImageSwitcher对象
  18. private ImageSwitcher m_Switcher;
  19. // 索引
  20. private static int index = 0;

  21. // "下一页"按钮ID
  22. private static final int BUTTON_DWON_ID = 0x123456;
  23. // “上一页”按钮ID
  24. private static final int BUTTON_UP_ID = 0x123457;
  25. // ImageSwitcher对象的ID
  26. private static final int SWITCHER_ID = 0x123458;

  27. @Override
  28. public void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. // 创建一个线性布局LinearLayout
  31. LinearLayout main_view = new LinearLayout(this);
  32. // 创建ImageSwitcher对象
  33. m_Switcher = new ImageSwitcher(this);
  34. // 在线性布局中添加ImageSwitcher视图
  35. main_view.addView(m_Switcher);
  36. // 设置ImageSwitcher对象的ID
  37. m_Switcher.setId(SWITCHER_ID);
  38. // 设置ImageSwitcher对象的数据源
  39. m_Switcher.setFactory((ViewFactory) this);
  40. m_Switcher.setImageResource(imagelist[index]);

  41. // 设置显示上面的线性布局
  42. setContentView(main_view);
  43. // 设置背景图片
  44. main_view.setBackgroundResource(R.drawable.xh);

  45. // 创建“下一张”按钮
  46. Button next = new Button(this);
  47. next.setId(BUTTON_DWON_ID);
  48. next.setText("下一张");
  49. next.setOnClickListener((OnClickListener) this);
  50. LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(100,
  51. 100);
  52. main_view.addView(next, param);

  53. // 创建“上一张”按钮
  54. Button pre = new Button(this);
  55. pre.setId(BUTTON_UP_ID);
  56. pre.setText("上一张");
  57. pre.setOnClickListener((OnClickListener) this);
  58. main_view.addView(pre, param);
  59. }

  60. // 事件监听、处理
  61. public void onClick(View v) {
  62. switch (v.getId()) {
  63. // 下一页
  64. case BUTTON_DWON_ID:
  65. index++;
  66. if (index >= imagelist.length) {
  67. index = 0;
  68. }
  69. // ImageSwitcher对象资源索引
  70. m_Switcher.setImageResource(imagelist[index]);
  71. break;
  72. // 上一页
  73. case BUTTON_UP_ID:
  74. index--;
  75. if (index < 0) {
  76. // 到最后一张
  77. index = imagelist.length - 1;
  78. }
  79. // ImageSwitcher对象资源索引
  80. m_Switcher.setImageResource(imagelist[index]);
  81. default:
  82. break;
  83. }
  84. }

  85. public View makeView() {
  86. // 将所有图片通过ImageView来显示
  87. return new ImageView(this);
  88. }
  89. }
源码 附件 
  xh_04_18_Test.rar (690.79 KB, 下载次数: 0) 

你可能感兴趣的:(windows,android,Integer,button,平台,imagelist)