AdapterViewFlipper功能 自动播放的图片库

案例中有"上一个""下一个""自动播放",但是我觉得可以更加完善一下,点击自动播放,按钮变成"停止播放",在按"停止播放"变为"自动播放",同样的排除在自动播放时,按下"上一个"和"下一个"均变为 "自动播放"

MainActivity.java

  1. public class MainActivity extends Activity
  2. {
  3. int[] imageIds = new int[]
  4. {
  5. R.drawable.shuangzi, R.drawable.shuangyu,
  6. R.drawable.chunv, R.drawable.tiancheng, R.drawable.tianxie,
  7. R.drawable.sheshou, R.drawable.juxie, R.drawable.shuiping, R.drawable.shizi, R.drawable.baiyang, R.drawable.jinniu,
  8. R.drawable.mojie};
  9. private AdapterViewFlipper flipper;
  10. private Button button_auto;
  11. @Override
  12. public void onCreate(Bundle savedInstanceState)
  13. {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. flipper = (AdapterViewFlipper) findViewById(R.id.flipper);
  17. button_auto = (Button) findViewById(R.id.button_auto);
  18. // 创建一个BaseAdapter对象,该对象负责提供Gallery所显示的列表项
  19. BaseAdapter adapter = new BaseAdapter()
  20. {
  21. @Override
  22. public int getCount()
  23. {
  24. return imageIds.length;
  25. }
  26. @Override
  27. public Object getItem(int position)
  28. {
  29. return position;
  30. }
  31. @Override
  32. public long getItemId(int position)
  33. {
  34. return position;
  35. }
  36. // 该方法返回的View代表了每个列表项
  37. @Override
  38. public View getView(int position, View convertView, ViewGroup parent)
  39. {
  40. // 创建一个ImageView
  41. ImageView imageView = new ImageView(MainActivity.this);
  42. imageView.setImageResource(imageIds[position]);
  43. // 设置ImageView的缩放类型
  44. imageView.setScaleType(ImageView.ScaleType.FIT_XY);
  45. // imageView设置布局参数
  46. imageView.setLayoutParams(new ViewGroup.LayoutParams(
  47. LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
  48. return imageView;
  49. }
  50. };
  51. flipper.setAdapter(adapter);
  52. }
  53. public void prev(View source)
  54. {
  55. // 显示上一个组件
  56. flipper.showPrevious();
  57. // 停止自动播放
  58. flipper.stopFlipping();
  59. button_auto.setText("自动播放");
  60. }
  61. public void next(View source)
  62. {
  63. // 显示下一个组件。
  64. flipper.showNext();
  65. // 停止自动播放
  66. flipper.stopFlipping();
  67. button_auto.setText("自动播放");
  68. }
  69. public void auto(View source)
  70. {
  71. String sting=button_auto.getText().toString();
  72. if (sting == "自动播放") {
  73. // 开始自动播放
  74. flipper.startFlipping();
  75. button_auto.setText("停止播放");
  76. } else {
  77. flipper.stopFlipping();
  78. button_auto.setText("自动播放");
  79. }
  80. }
  81. }

XML文件

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <RelativeLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6. <AdapterViewFlipper
  7. android:id="@+id/flipper"
  8. android:layout_width="match_parent"
  9. android:layout_height="match_parent"
  10. android:flipInterval="2000"
  11. android:layout_alignParentTop="true"/>
  12. <Button
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content"
  15. android:layout_alignParentBottom="true"
  16. android:layout_alignParentLeft="true"
  17. android:onClick="prev"
  18. android:text="上一个"/>
  19. <Button
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:layout_alignParentBottom="true"
  23. android:layout_centerHorizontal="true"
  24. android:onClick="next"
  25. android:text="下一个"/>
  26. <Button
  27. android:id="@+id/button_auto"
  28. android:layout_width="wrap_content"
  29. android:layout_height="wrap_content"
  30. android:layout_alignParentBottom="true"
  31. android:layout_alignParentRight="true"
  32. android:onClick="auto"
  33. android:text="自动播放"/>
  34. </RelativeLayout>

效果

原文地址:https://www.cnblogs.com/wwjldm/p/6929563.html