android之查看图片的程序 ImageSwitcher Gallery的配合应用---版本1

来源:互联网 发布:raid2数据图 编辑:程序博客网 时间:2024/06/16 15:33

最终效果图:

当我们在最下边的gallery中切换图片时,上面的大图片会自动切换,切换时有动画效果哦,很简单的一个程序,有待完善更多的功能!

activity代码:

[java:nogutter] view plaincopyprint?
  1. package cn.com.chenzheng_java;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.view.Window;
  8. import android.view.animation.AnimationUtils;
  9. import android.widget.AdapterView;
  10. import android.widget.BaseAdapter;
  11. import android.widget.Gallery;
  12. import android.widget.ImageSwitcher;
  13. import android.widget.ImageView;
  14. import android.widget.Toast;
  15. import android.widget.AdapterView.OnItemSelectedListener;
  16. import android.widget.ImageView.ScaleType;
  17. import android.widget.ViewSwitcher.ViewFactory;
  18. /**
  19. * @description 对图片的一个小小展示
  20. * @author chenzheng_java
  21. * @since 2011/3/17
  22. *
  23. */
  24. public class GalleryActivityextends Activity implements OnItemSelectedListener {
  25. int[] imagesId = new int[] { R.drawable.a1, R.drawable.a2, R.drawable.a3,
  26. R.drawable.a4
  27. };
  28. int index = R.drawable.a1;
  29. ImageSwitcher imageSwitcher;
  30. @Override
  31. protected void onCreate(Bundle savedInstanceState) {
  32. super.onCreate(savedInstanceState);
  33. /**
  34. * 设置窗口无标题栏,一定要在setContentView前进行设置哦
  35. */
  36. requestWindowFeature(Window.FEATURE_NO_TITLE);
  37. setContentView(R.layout.gallery);
  38. Gallery gallery = (Gallery) findViewById(R.id.gallery1);
  39. gallery.setOnItemSelectedListener(this);
  40. imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);
  41. imageSwitcher.setVisibility(View.VISIBLE);
  42. /***
  43. * setInAnimation可以设置淡入动画
  44. * setOutAnimation可以设置淡出动画
  45. */
  46. imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(
  47. getApplicationContext(), android.R.anim.fade_in));
  48. imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(
  49. getApplicationContext(), android.R.anim.fade_out));
  50. imageSwitcher.setFactory(new ViewFactory() {
  51. /**
  52. * 创建一个新的图片放置到ImageSwitcher上,可以使用其设置背景哦。
  53. * 一般只会在创建时调用一次。相当于为我们创建一个进行动画效果时的一个背景图。
  54. * 此方法亦可以通过setView替代
  55. */
  56. @Override
  57. public View makeView() {
  58. ImageView imageView = new ImageView(GalleryActivity.this);
  59. // 设置截取模式
  60. imageView.setScaleType(ScaleType.CENTER_INSIDE);
  61. imageView.setBackgroundResource(R.drawable.ground);
  62. Toast.makeText(getApplicationContext(), "执行了一次",
  63. Toast.LENGTH_SHORT).show();
  64. return imageView;
  65. }
  66. });
  67. gallery.setVisibility(View.VISIBLE);
  68. gallery.setAdapter(new ImageAdapter(this));
  69. }
  70. class ImageAdapterextends BaseAdapter {
  71. private Context context2;
  72. public ImageAdapter(Context context) {
  73. context2 = context;
  74. }
  75. @Override
  76. public int getCount() {
  77. return imagesId.length;
  78. }
  79. @Override
  80. public Object getItem(int position) {
  81. return imagesId[position];
  82. }
  83. @Override
  84. public long getItemId(int position) {
  85. return position;
  86. }
  87. @Override
  88. public View getView(int position, View image2, ViewGroup parent) {
  89. ImageView image = new ImageView(context2);
  90. image.setBackgroundResource(imagesId[position]);
  91. /**
  92. * setScaleType()可以设置当图片大小和容器大小不匹配时的剪辑模式.
  93. * ScaleType.CENTER_INSIDE的意思是,按图片的原比例缩小或者扩大,直到长或者宽中的任何一个顶到容器为止
  94. */
  95. image.setScaleType(ScaleType.CENTER_INSIDE);
  96. return image;
  97. }
  98. }
  99. /**
  100. * 当gallery的图像发生变化时,同步ImageSwitcher的变化
  101. */
  102. @Override
  103. public void onItemSelected(AdapterView<?> parent, View view,int position,
  104. long id) {
  105. imageSwitcher.setImageResource(imagesId[position]);
  106. }
  107. @Override
  108. public void onNothingSelected(AdapterView<?> parent) {
  109. }
  110. }

gallery.xml

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 很深的川字纹怎么办 dns被劫持怎么办 手机 职工发生工伤后怎么办 做acm看不懂题目怎么办 12岁洗澡发烧怎么办 word转pdf乱码怎么办? 花生油炸糊了怎么办 熟鸡肉很腥怎么办 鸡肉稍微有点味怎么办 新鲜鸡肉有点臭怎么办 手机屏幕自己乱点怎么办 电脑开机出现f1f2怎么办 普通话证书身份证号有误怎么办 湖南身份证在深圳怎么办 超市快过期东西怎么办 超市打碎了东西怎么办 毕业证与身份证号不符怎么办 家里电路坏了怎么办 深圳户口没房怎么办 深圳租凭合同怎么办 房屋续租水电费怎么办 二手房买到凶宅怎么办 公租房退休之后怎么办 深圳公务员无房怎么办 深圳安居房回执遗失怎么办 社保网注册不了怎么办 深圳怎么办少儿医保卡 少儿没缴纳医保怎么办 上海辞职后社保怎么办 辞职去上学社保怎么办 辞职后异地社保怎么办 个人不想交社保怎么办 离职去异地社保怎么办 离职到外省社保怎么办 辞职去外省社保怎么办 永康光伏补贴怎么办? 找到工作后档案怎么办 夫妻离婚后户口怎么办 异地档案辞职后怎么办 去网吧没有招聘怎么办 建筑工地老板不给钱怎么办