歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 中的ImageSwitcher 和Gallery結合使用

Android 中的ImageSwitcher 和Gallery結合使用

日期:2017/3/1 10:29:23   编辑:Linux編程

(1)gallery 即綁定一個adapter 即可。

(2)Activity 實現ViewFactory。並實現其中的構造方法

makeView();。這個方法主要是返回一個view對象。並為switcher設置imageSwitcher.setFactory(this);--這個Factory 是用來切換ImageSwitcher的view的。

實現OnItemSelectedListener為gallery重寫

onNothingSelected();

onItemSelected();

  1. package com.bsn.cc;
  2. import Android.app.Activity;
  3. import android.content.Context;
  4. import android.content.res.TypedArray;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.view.animation.AnimationUtils;
  9. import android.widget.AdapterView;
  10. import android.widget.AdapterView.OnItemClickListener;
  11. import android.widget.AdapterView.OnItemSelectedListener;
  12. import android.widget.Gallery.LayoutParams;
  13. import android.widget.BaseAdapter;
  14. import android.widget.Gallery;
  15. import android.widget.ImageSwitcher;
  16. import android.widget.ImageView;
  17. import android.widget.ViewSwitcher.ViewFactory;
  18. public class ImageSwitcherActivity extends Activity implements OnItemSelectedListener,ViewFactory{
  19. private Gallery gallery;
  20. private ImageSwitcher imageSwitcher;
  21. private ImageAdapter imageAdapter;
  22. private int []resId={
  23. R.drawable.item1, R.drawable.item2, R.drawable.item3, R.drawable.item4,
  24. R.drawable.item5, R.drawable.item6, R.drawable.item7,
  25. R.drawable.item8, R.drawable.item9, R.drawable.item10,
  26. R.drawable.item11, R.drawable.item12, R.drawable.item13,
  27. R.drawable.item14, R.drawable.item15
  28. };
  29. @Override
  30. public void onCreate(Bundle savedInstanceState) {
  31. super.onCreate(savedInstanceState);
  32. setContentView(R.layout.main);
  33. gallery = (Gallery) findViewById(R.id.dddd);
  34. imageAdapter = new ImageAdapter(this);
  35. gallery.setAdapter(imageAdapter);
  36. gallery.setOnItemSelectedListener(this);
  37. imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitcher);
  38. imageSwitcher.setFactory(this);
  39. imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
  40. android.R.anim.fade_in));
  41. imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
  42. android.R.anim.fade_out));
  43. }
  44. private class ImageAdapter extends BaseAdapter{
  45. int mGalleryItemBackground;
  46. private Context mContext;
  47. public ImageAdapter(Context context)
  48. {
  49. mContext = context;
  50. // 這裡為自定義屬性R.styleable.Gallery ..中的屬性定義的是gallery的默認邊框
  51. TypedArray typedArray = obtainStyledAttributes(R.styleable.Gallery);
  52. mGalleryItemBackground = typedArray.getResourceId(
  53. R.styleable.Gallery_android_galleryItemBackground, 0);
  54. }
  55. @Override
  56. public int getCount() {
  57. return Integer.MAX_VALUE;
  58. }
  59. @Override
  60. public Object getItem(int arg0) {
  61. // TODO Auto-generated method stub
  62. return arg0;
  63. }
  64. @Override
  65. public long getItemId(int position) {
  66. // TODO Auto-generated method stub
  67. return position;
  68. }
  69. @Override
  70. public View getView(int position, View convertView, ViewGroup parent) {
  71. ImageView imageView=new ImageView(mContext);
  72. imageView.setImageResource(resId[position]);
  73. imageView.setScaleType(ImageView.ScaleType.FIT_XY);
  74. imageView.setLayoutParams(new Gallery.LayoutParams(136,88));
  75. imageView.setBackgroundResource(mGalleryItemBackground);
  76. return imageView;
  77. }
  78. }
  79. @Override
  80. public View makeView() {
  81. ImageView imageView = new ImageView(this);
  82. imageView.setBackgroundColor(0xFF000000);
  83. imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
  84. imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
  85. LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
  86. return imageView;
  87. }
  88. @Override
  89. public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
  90. long arg3) {
  91. imageSwitcher.setImageResource(resId[arg2 % resId.length]);
  92. }
  93. @Override
  94. public void onNothingSelected(AdapterView<?> arg0) {
  95. }
  96. }
Copyright © Linux教程網 All Rights Reserved