MainActivity.class

  1. public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener,ViewSwitcher.ViewFactory {
  2. private Gallery gallery;
  3. private ImageSwitcher imageSwitcher;
  4.  
  5. //数据源
  6. private int[] res = {R.drawable.item1,R.drawable.item2,R.drawable.item3,R.drawable.item4,
  7. R.drawable.item5,R.drawable.item6, R.drawable.item7,R.drawable.item8,
  8. R.drawable.item9,R.drawable.item10,R.drawable.item11,R.drawable.item12};
  9.  
  10. private ImageAdapter adapter;
  11.  
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. gallery = (Gallery) findViewById(R.id.gallery);
  17. imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitch);
  18.  
  19. adapter = new ImageAdapter(res,this);
  20. gallery.setAdapter(adapter);
  21. gallery.setOnItemSelectedListener(this);
  22.  
  23. //imageSwitcher加载工厂factory
  24. imageSwitcher.setFactory(this);
  25. imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
  26. imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
  27.  
  28. }
  29. @Override
  30. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  31. imageSwitcher.setBackgroundResource(res[position % res.length]);
  32. }
  33.  
  34. @Override
  35. public View makeView() {
  36. ImageView image = new ImageView(this);
  37. //等比例 居中缩放
  38. image.setScaleType(ImageView.ScaleType.CENTER.FIT_CENTER);
  39. return image;
  40. }

 ImageAdapter类 自己写的Adapter 继承于BaseAdapter

  1. ImageAdapter.class
  1. public class ImageAdapter extends BaseAdapter {
  2. private int[] res;
  3. private Context context;
  4. public ImageAdapter(int[] res,Context context){
  5. this.res = res;
  6. this.context = context;
  7. }
  8.  
  9. //获取数量
  10. @Override
  11. public int getCount() {
  12. return res.length;
  13. // return Integer.MAX_VALUE; 约等于无限数量
  14.  
  15. }
  16.  
  17. //获取项目
  18. @Override
  19. public Object getItem(int position) {
  20. return res[position];
  21. }
  22.  
  23. //获取在适配器中的位置
  24. @Override
  25. public long getItemId(int position) {
  26. return position;
  27. }
  28.  
  29. //获取单个的View
  30. @Override
  31. public View getView(int position, View convertView, ViewGroup parent) {
  32. //new出一个新的View
  33. ImageView image = new ImageView(context);
  34.  
  35. //给ImageView加载对应的图像资源
  36. image.setBackgroundResource(res[position]);
  37. //利用取余 无限图片位置 不受数目限制了 res[position % res.length]
  38.  
  39. //设置view在Gallery中缩略图的大小
  40. image.setLayoutParams(new Gallery.LayoutParams(200,150));
  41.  
  42. //设置缩放模式
  43. image.setScaleType(ImageView.ScaleType.FIT_XY);
  44.  
  45. return image;
  46. }
  47. }

 Activity.xml

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical"
  6. tools:context=".MainActivity">
  7.  
  8. <Gallery
  9. android:id="@+id/gallery"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"/>
  12.  
  13. <ImageSwitcher
  14. android:layout_gravity="center_vertical"
  15. android:layout_below="@id/gallery"
  16. android:id="@+id/imageswitch"
  17. android:layout_width="match_parent"
  18. android:layout_height="wrap_content">
  19. </ImageSwitcher>
  20.  
  21. </LinearLayout>

  

使用Gallery制作图片浏览器的更多相关文章

  1. ImageView加ImageSwitch制作图片浏览器

    Main /** 图片浏览器*/public class MainActivity extends Activity implements ViewFactory{private Gallery ga ...

  2. android:使用gallery和imageSwitch制作可左右循环滑动的图片浏览器

    为了使图片浏览器左右无限循环滑动 我们要自己定义gallery的adapter 假设要想自己定义adapter首先要了解这几个方法 @Override public int getCount() { ...

  3. Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式

    Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...

  4. winform利用ImageList控件和ListView控件组合制作图片文件浏览器

    winform利用ImageList控件和ListView控件组合制作图片文件浏览器,见图,比较简单,实现LISTVIEW显示文件夹图片功能. 1.选择文件夹功能代码: folderBrowserDi ...

  5. 制作一个简单的WPF图片浏览器

    原文:制作一个简单的WPF图片浏览器 注:本例选自MSDN样例,并略有改动.先看效果: 这里实现了以下几个功能:1.  对指定文件夹下所有JPG文件进行预览2.  对选定图片进行旋转3.  对选定图片 ...

  6. Android中轴旋转特效实现,制作别样的图片浏览器

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/10766017 Android API Demos中有很多非常Nice的例子,这些例 ...

  7. 一步一步打造自己的Android图片浏览器(原创)

    今天我们试着来制作一个自己的Android图片浏览器. 图片浏览器应该具有什么功能呢?鉴于不同的人不同的理解,这里提出一个基本的需求: 搜索手机内的所有图片,展示于一个列表中: 列表中展示的是图片的缩 ...

  8. Android 高级UI设计笔记15:HorizontalScrollView之 实现画廊式图片浏览器

    1. HorizontalScrollView 本来,画廊式的图片浏览器,使用Android中的Gallery就能轻松完成,但是Google说Gallery每次切换图片时都要新建视图,造成太多的资源浪 ...

  9. Swift - 使用UIWebView和UIToolbar制作一个浏览器

    使用网页控件(UIWebView)与工具栏控件(UIToolbar),我们可以自制一个小型的浏览器,其功能如下: 1,输入网址,点击“Go”按钮加载网页 2,加载过程中有进度条,同时可以点击停止按钮取 ...

随机推荐

  1. CentOS里查看内存的使用

    转自 http://blog.csdn.net/blueman2012/article/details/6904597

  2. lumen怎么得到当前Uri的控制器、Action、路由规则

    <?php namespace App\Http\Controllers; class HelloController extends Controller { public function ...

  3. 使用rabbit mq.模拟dubbo,使MQ异步调用代码写起来像是同步方法.

    最近在改造老系统,遇到了需要使用rabbitMq的场景.在以前使用的过程中需要在发送端和消费端各种配置,感觉比较麻烦,然后突然想到了dubbo中@Reference注解的形式,可不可以做一个类似的架子 ...

  4. DRF之APIView源码解析

    目录 Django项目中的代码如下 APIView源码解析 源码解析总结 Django项目中的代码如下 urls.py中: from django.conf.urls import url from ...

  5. Golang的goroutine协程和channel通道

    一:简介 因为并发程序要考虑很多的细节,以保证对共享变量的正确访问,使得并发编程在很多情况下变得很复杂.但是Go语言在开发并发时,是比较简洁的.它通过channel来传递数据.数据竞争这个问题在gol ...

  6. 前端面试经典题之apply与call的比较

    在讲apply和call之前,我们需要先清楚在js中,this指向的是什么. 大家可以参考一下阮一峰老师写的关于JavaScript中this的原理讲解文章:http://www.ruanyifeng ...

  7. Pulse Secure 任意文件读取(CVE-2019-11510)漏洞

    漏洞分析 我们可以通过CVE-2019-11510这个未授权的任意文件读取漏洞把以下文件下载回来. /etc/passwd /etc/hosts /data/runtime/mtmp/system / ...

  8. jQuery 虚拟数字键盘代码

    先上效果:    js直接应用:  $('input').mynumkb(); 就出来效果 HTML: <input maxlength="4" type="tex ...

  9. English 邮件

    1.email http://www2.elc.polyu.edu.hk/cill/eiw/e-mail.htm

  10. Linux三剑客之grep常用参数详细总结

    三剑客grep总结 grep  : Linux三剑客老三      过滤需要的内容 参数: grep一般常用参数: -a :在二进制文件中,以文本文件的方式搜索数据 -c :计算找到 ’ 搜索字符串 ...