上一节学习了Gallery,本节结合Gallery来学习ImageSwitcher。

先贴出最终的效果图:

逻辑部分代码:

public class ImageSwitcherActivity extends Activity
{private static ImageSwitcher mImageSwitcher;private static Gallery mGallery;private int[] images = {R.drawable.a, R.drawable.b,R.drawable.c, R.drawable.d,R.drawable.e, R.drawable.f,R.drawable.h};@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_imageswitcher);mImageSwitcher = (ImageSwitcher)findViewById(R.id.image_switcher);mGallery = (Gallery)findViewById(R.id.gallery);mImageSwitcher.setFactory(new MyViewFactory(this));//默认显示中间图片mImageSwitcher.setImageResource(images[images.length/2]);mGallery.setAdapter(new MyAdapter(this));mGallery.setSpacing(10);//默认显示中间图片mGallery.setSelection(images.length/2);//设置监听器,mGallery.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubmImageSwitcher.setImageResource(images[position%images.length]);}});}class MyViewFactory implements ViewFactory{private Context context;public MyViewFactory(Context context){this.context = context;}@Overridepublic View makeView() {ImageView view = new ImageView(this.context);view.setBackgroundColor(0xFF000000);//设置显示位置view.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));return view;}}class MyAdapter extends BaseAdapter{private Context context;public MyAdapter(Context context){this.context = context;}@Overridepublic int getCount() {// 获取图片资源的总数//return images.length;return Integer.MAX_VALUE;}@Overridepublic Object getItem(int position) {// 获得图片当前位置return position;}@Overridepublic long getItemId(int position) {// 获得当前位置的图片IDreturn images[position];}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 获得当前图片资源ImageView view = new ImageView(this.context);view.setImageResource(images[position%images.length]);view.setAdjustViewBounds(true);//设置图片的大小view.setLayoutParams(new Gallery.LayoutParams(100, 100));//view.setPadding(15, 10, 15, 10);return view;}}}

本示例可实现循环选择, 刚进来默认是中间的一张图片

布局文件如下:

    <ImageSwitcher android:id="@+id/image_switcher"android:layout_width="fill_parent"android:layout_height="fill_parent"></ImageSwitcher><Gallery android:id="@+id/gallery"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_alignParentLeft="true"/>

ok。 运行的效果图就是上图所示。

Androd UI学习之ImageSwitcher相关推荐

  1. UI学习笔记---EasyUI panel插件使用---03

    UI学习笔记---EasyUI panel插件使用---03 UI学习笔记---EasyUI panel插件使用---03 1.panel简单小例子 ------------------- 2.可以自 ...

  2. Ui学习笔记---EasyUI的EasyLoader组件源码分析

    Ui学习笔记---EasyUI的EasyLoader组件源码分析 技术qq交流群:JavaDream:251572072   1.问题1:为什么只使用了dialog却加载了那么多的js   http: ...

  3. Ui学习笔记---EasyUI的使用方法,EasyLoader组件使用

    Ui学习笔记---EasyUI的使用方法,EasyLoader组件使用 技术qq交流群:CreDream:251572072 1.使用之前导入文件:   这里用jquery-easyui-1.2.6 ...

  4. Ui学习笔记---EasyUI的介绍

    Ui学习笔记---EasyUI的介绍 -------------------------- 1.组织:   a.EasyUI官方:http://www.jeasyui.com     EasyUI是一 ...

  5. swift UI 学习 (一)

    swift UI 学习 Swift UI 简介 SwiftUI 的特点是什么 1. 声明式语法 2. 拥有更直观的新设计工具 3. 为所有的苹果设备提供原生体验 SwiftUI 代码实例 Swift ...

  6. Element UI学习记录之布局

    目录 Element UI学习记录之布局 一.Layout布局 二.Container布局容器 Element UI学习记录之布局 一.Layout布局 基本概念:一行通过分割为24栅格栏进行布局,如 ...

  7. 【12月原创】RT-thread - 柿饼UI学习心得分享

    柿饼UI学习心得分享(2) 概述 介绍: Persimmon 是一套运行在RT-Thread嵌入式实时操作系统上的图形用户组件界面,用于提供图形界面的用户交互. 它采用C++语言编写,基于C语言实现的 ...

  8. 【UI学习】Android github开源项目,酷炫自定义控件(View)汇总

    [UI学习]Android github开源项目,酷炫自定义控件(View)汇总 转载  2016年09月04日 23:23:15 3484 近期整理的比较酷炫并且我们会经常用到的custom vie ...

  9. UI设计要学什么,这份UI学习路线图告诉你

    对于想要学习UI设计的人来说,学习路线是很重要的问题,因为只有有明确的规划和路线,加上好的方法,才能在学习的时候事半功倍,成为一名合格的UI设计师.下面,给大家分享一下UI学习路线. 预科:造型训练与 ...

  10. 学习UI设计要懂哪些内容?最新UI学习路线图告诉你

    对于想要学习UI设计的人来说,学习路线是很重要的问题,因为只有有明确的规划和路线,加上好的方法,才能在学习的时候事半功倍,成为一名合格的UI设计师.下面,千锋小编就给大家分享一下UI学习路线. 预科: ...

最新文章

  1. POJ1276Cash Machine
  2. 拥有2000家门店,他如何晋升为服装界的新宠?
  3. 多表查询事务DCL权限管理
  4. Android 5.0 Lollipop介绍
  5. hive查看数据库里库的信息_hive 查看当前数据库
  6. 实现单服务器响应多客户机,对等网与客户机/服务器网络
  7. 在 vue 组件中查看 vuex 定义
  8. xml方式实现aop-通知的种类
  9. 项目Alpha冲刺Day4
  10. PHP经常使用正則表達式汇总
  11. Apollo进阶课程㉟丨Apollo ROS原理—4
  12. stringreader_Java StringReader markSupported()方法与示例
  13. Python基础语法和数据类型最全总结
  14. ubuntu使用VNC实现远程桌面
  15. python实现xml文件解析失败_Python实现灵活的xml文件解析
  16. 力克“中国智造”之道,亮相第七届工业数字化论坛
  17. Android开发——项目实例(一)迷你背单词软件
  18. 华为 荣耀 等手机解锁BootLoader
  19. 用excel表格解线性方程组
  20. 数据库学生学籍管理系统

热门文章

  1. python 【递归 及 二分法】
  2. linux第三版 网页链接
  3. JQuery原生js ——实现剪刀石头布小游戏
  4. [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
  5. Nginx服务器中的Socket切分,需要的朋友可以参考下
  6. 跟我一起学docker(14)--docker swarm的使用
  7. js jquery select 操作 获取值,选中选项,增加,修改,删除
  8. 工具使用-----Jmeter-脚本的录制
  9. 清除浮动的七种方式方法(实例代码讲解)
  10. 粤港澳湾区邮轮产业崛起 构建邮轮母港群尚需加强合作