Android高级组件ImageSwitcher图像切换器使用方法详解

图像切换器(ImageSwitcher),用于实现类似于Windows操作系统的“Windows照片查看器”中的上一张、下一张切换图片的功能。在使用ImageSwitcher时,必须实现ViewSwitcher.ViewFactory接口,并通过makeView()方法来创建用于显示图片的ImageView。makeView()方法将返回一个显示图片的ImageView。在使用图像切换器时,还有一个方法非常重要,那就是setImageResource方法,该方法用于指定要在ImageSwitcher中显示的图片资源。

下面通过一个实例来说明图像切换器的用法。

res/layout/main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal"
  android:id="@+id/layout"
  android:gravity="center">
  <Button
    android:text="上一张"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button1"/>
  <ImageSwitcher
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:id="@+id/imageSwitcher1"/>
  <Button
    android:text="下一张"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button2"/>
</LinearLayout>

MainActivity:

package com.example.test; 

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory; 

public class MainActivity extends Activity{
  //声明并初始化一个保存要显示图像id的数组
  private int[] imageId=new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,
      R.drawable.img04,R.drawable.img05,R.drawable.img06,R.drawable.img07,
      R.drawable.img08};
  private int index=0;//当前显示图像的索引
  private ImageSwitcher imageSwitcher;//声明一个图像切换器对象
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    imageSwitcher=(ImageSwitcher)findViewById(R.id.imageSwitcher1);//获取图像切换器
    //设置动画效果
    imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));//设置淡入动画
    imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));//设置淡出动画
    imageSwitcher.setFactory(new ViewFactory() {//设置View工厂 

      @Override
      public View makeView() {
        ImageView imageView=null;
        imageView=new ImageView(MainActivity.this);//实例化一个ImageView类的对象
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);//设置保持纵横比居中缩放图像
        imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
            LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        return imageView;
      }
    });
    imageSwitcher.setImageResource(imageId[index]);//显示默认的图片 

    //“上一张”和“下一张”按钮的控制
    Button up=(Button)findViewById(R.id.button1);
    Button down=(Button)findViewById(R.id.button2);
    up.setOnClickListener(new OnClickListener() { 

      @Override
      public void onClick(View arg0) {
        if(index>0){
          index--;//图片索引后退一个
        }else{
          index=imageId.length-1;//图片达到最前面一张之后,循环至最后一张
        }
        imageSwitcher.setImageResource(imageId[index]);//显示当前图片
      }
    });
    down.setOnClickListener(new OnClickListener() { 

          @Override
          public void onClick(View arg0) {
            if(index<imageId.length-1){
              index++;//图片索引前进一个
            }else{
              index=0;//图片达到最后面一张之后,循环至第一张
            }
            imageSwitcher.setImageResource(imageId[index]);//显示当前图片
          }
        });
  }
} 

效果如图所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Android UI控件之ImageSwitcher实现图片切换效果
  • Android常用控件ImageSwitcher使用方法详解
  • Android之ImageSwitcher的实例详解
  • Android控件ImageSwitcher实现左右图片切换功能
  • 很赞的引导界面效果Android控件ImageSwitcher实现
  • Android基于ImageSwitcher实现图片切换功能
  • Android入门之Gallery+ImageSwitcher用法实例解析
(0)

相关推荐

  • Android控件ImageSwitcher实现左右图片切换功能

    ImageSwitcher类是ViewSwitcher类的子类,它实现的效果是在完成ImageView的切换并且带有动画效果.要使用这个类需要以下两个步骤: 1)为ImageSwitcher类提供一个ViewFactory,该ViewFactory生成的View组件必须是ImageView. 2)需要切换的时候,只需要嗲用ImageSwitcher的setImageDrawable().setImageResource().setImageURL()方法即可实现切换. activity_main

  • Android UI控件之ImageSwitcher实现图片切换效果

    本文实例为大家分享了geSwitcher实现图片切换效果的具体代码,供大家参考,具体内容如下 从该名字就可以看出来,ImageSwitcher是一个图片切换控件,可以在一系列的图片中,逐张的显示特定的图片,利用该控件可以实现图片浏览器中的上一张,下一张的功能.其使用方法也较 为简单,不过需要注意的是ImageSwitcher在使用的时候需要一个ViewFactory,用来区分显示图片的容器和他的父窗口. 具体的用法直接看实例,照例,先上效果图 看看下一张的效果: 布局文件就不多谈了直接看Main

  • Android之ImageSwitcher的实例详解

    Android之ImageSwitcher的实例详解 一. 简单示例 实例代码: public class AndroidUIActivity extends Activity { // 当前显示的图片索引 private int index; // 图片数组 private int[] images = { R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, R.drawable.image5

  • 很赞的引导界面效果Android控件ImageSwitcher实现

    本文实例为大家分享了Android控件ImageSwitcher实现引导界面的代码,供大家参考,具体内容如下 效果图: 布局代码: <?xml version="1.0" encoding="UTF-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent&

  • Android常用控件ImageSwitcher使用方法详解

    图像切换器使用ImageSwitcher表示,用于实现类似于Windows操作系统下的"Windows照片查看器"中的上一张.下一张切换图片的功能.在使用ImageSwitcher时,必须实现ViewSwitcher.ViewFactory接口,并通过makeView()方法创建用于显示图片的ImageView对象.makeView()方法将返回一个显示图片的ImageView.在使用ImageSwitcher组件时,还有一个非常重要的方法,那就是setImageResource()方

  • Android基于ImageSwitcher实现图片切换功能

    左右切换图片控件大家都用ViewPager, ViewFipper比较多吧,我之前也用ViewPager实现了,使用ViewPager实现左右循环滑动图片,有兴趣的可以去看下,今天介绍的是基于ImageSwitcher实现的左右切换图片,先上截图吧 好了,接下来来看代码吧,第一张图是一个GridView,点击item跳转到第二个界面,第一个界面可以忽略,主要是讲解ImageSwitcher的左右却换图片,先看布局文件 <?xml version="1.0" encoding=&q

  • Android入门之Gallery+ImageSwitcher用法实例解析

    继上一篇介绍了如何使用Gallery控件之后,本文就来讲一下Gallery 与ImageSwitcher的结合使用.本文所述实例代码将实现一个简单的浏览图片的功能. 先贴出程序运行截图如下: 除了Gallery可以拖拉切换图片,我在ImageSwitcher控件加入了setOnTouchListener事件实现,使得ImageSwitcher也可以在拖拉中切换图片.本例子依然使用JAVA的反射机制来自动读取资源中的图片. main.xml的源码如下: <?xml version="1.0&

  • Android高级组件ImageSwitcher图像切换器使用方法详解

    图像切换器(ImageSwitcher),用于实现类似于Windows操作系统的"Windows照片查看器"中的上一张.下一张切换图片的功能.在使用ImageSwitcher时,必须实现ViewSwitcher.ViewFactory接口,并通过makeView()方法来创建用于显示图片的ImageView.makeView()方法将返回一个显示图片的ImageView.在使用图像切换器时,还有一个方法非常重要,那就是setImageResource方法,该方法用于指定要在ImageS

  • Android高级组件AutoCompleteTextView自动完成文本框使用详解

    自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项之后,按用户选择自动填写该文本框. 语法格式: <AutoCompleteTextView 属性列表> </AutoCompleteTextView> AutoCompleteTextView组件继承EditText,所以它支持EditText组件提供的属性,同时,该组件还有以下属性: android:completionHint 下拉列表

  • ImageSwitcher图像切换器的使用实例

    本文实例为大家分享了ImageSwitcher图像切换器的实现代码,供大家参考,具体内容如下 描述 在该实例中,提供一个图片切换器和两个点击按钮,用于切换图片,并用一个TextView显示图片信息.其中,当前图片若为最后一张,点击下一张,则跳转到第一张:同理,第一张图片点击上一张,则显示最后一张图片,循环查看当前图片. 目标效果图如下所示: 页面布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi

  • Android中gson、jsonobject解析JSON的方法详解

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, ke

  • vue iview组件表格 render函数的使用方法详解

    如果要在标签中加入属性,例如img 中src属性   a标签中href属性  此时需要用到 attrs 来加入而不是props { title: '操作', key: 'action', align: 'center', render: function (h, params) { return h('div', [ h('Button', { props: { type: 'primary', size: 'small' }, style: { marginRight: '8px' }, on

  • Spring Boot项目中定制拦截器的方法详解

    这篇文章主要介绍了Spring Boot项目中定制拦截器的方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Servlet 过滤器属于Servlet API,和Spring关系不大.除了使用过滤器包装web请求,Spring MVC还提供HandlerInterceptor(拦截器)工具.根据文档,HandlerInterceptor的功能跟过滤器类似,但拦截器提供更精细的控制能力:在request被响应之前.request被响应之后.视

  • 在Android中使用WebSocket实现消息通信的方法详解

    前言 消息推送功能可以说移动APP不可缺少的功能之一,一般简单的推送我们可以使用第三方推送的SDK,比如极光推送.信鸽推送等,但是对于消息聊天这种及时性有要求的或者三方推送不满足业务需求的,我们就需要使用WebSocket实现消息推送功能. 基本流程 WebSocket是什么,这里就不做介绍了,我们这里使用的开源框架是https://github.com/TakahikoKawasaki/nv-websocket-client 基于开源协议我们封装实现WebSocket的连接.注册.心跳.消息分

  • android 禁止第三方apk安装和卸载的方法详解

    需求是这样的,客户要求提供系统的接口来控制apk的安装和卸载,接口如下 boolean setAppInstallationPolicies(int mode, String[] appPackageNames) mode:应用名单类型 0:黑名单(应用包名列表中的所有项都不允许安装): 1:白名单(只允许安装应用包名列表中的项). appPackageNames:应用包名列表.当appPackageNames为空时,取消所有已设定的应用. 成功返回true:失败返回false. String[

  • SpringBoot实现登录拦截器的方法详解

    在项目目录下建立两个包:inter 与contsfig 在inter新建层中实现HandlerInterceptor的继承类 package com.example.gameboxadminserver.inter; import com.example.gameboxadminserver.entity.User; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.

  • LyScript实现Hook隐藏调试器的方法详解

    目录 Patch_PEB Patch_IsDebuggerPresent Patch_CheckRemoteDebuggerPresent Patch_GetTickCount Patch_ZwQueryInformationProcess Patch_FindWindow Patch_EnumWindows LyScript 插件集成的内置API函数可灵活的实现绕过各类反调试保护机制,前段时间发布的那一篇文章并没有详细讲解各类反调试机制的绕过措施,本次将补充这方面的知识点,运用LyScript

随机推荐