ImageSwitcher图像切换器的使用实例

 更新时间:2020年10月23日 15:23:21   作者:小龙  
这篇文章主要为大家详细介绍了ImageSwitcher图像切换器的使用实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了ImageSwitcher图像切换器的实现代码,供大家参考,具体内容如下

描述

在该实例中,提供一个图片切换器和两个点击按钮,用于切换图片,并用一个TextView显示图片信息。其中,当前图片若为最后一张,点击下一张,则跳转到第一张;同理,第一张图片点击上一张,则显示最后一张图片,循环查看当前图片。

目标效果图如下所示:

页面布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/LinearLayout1"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@drawable/bg67"
  android:orientation="vertical"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context=".MainActivity" >

  <TextView
    android:id="@+id/show"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="20dp"
    android:text="我是当前图片的信息~"
    android:textSize="24dp" />


  <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageSwitcher 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/image"
      android:layout_gravity="center"
      android:background="#666666">
    </ImageSwitcher>

    <LinearLayout 
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:gravity="center">

      <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="上一张"
        android:layout_marginLeft="20dp"
        android:textSize="24dp"
        android:id="@+id/up" />

      <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下一张"
        android:layout_marginLeft="20dp"
        android:textSize="24dp"
        android:id="@+id/down" />

    </LinearLayout>

  </LinearLayout>
</LinearLayout>

事件响应

package com.example.imageswitchdemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ViewSwitcher.ViewFactory;

public class MainActivity extends Activity
{
  TextView show=null;
  Button up,dowm=null;
  ImageSwitcher image=null;
  private int[] images=new int[]{R.drawable.a001,R.drawable.a002,R.drawable.a003,
                  R.drawable.a004,R.drawable.a005,R.drawable.a006,
                  R.drawable.a007,R.drawable.a008,R.drawable.a009};
  private int index=0;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //获取控件
    show=(TextView) findViewById(R.id.show);
    up=(Button) findViewById(R.id.up);
    dowm=(Button) findViewById(R.id.down);
    image=(ImageSwitcher) findViewById(R.id.image);

    //为获取到的控件添加显示效果:淡入动画和淡出动画
    image.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
    image.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));

    //为图像切换器设置一个ViewFactory,并重写makeView方法
    image.setFactory(new ViewFactory()
    {

      @Override
      public View makeView()
      {
        //指定视图切换工程
        return new ImageView(MainActivity.this);
      }
    });
    image.setImageResource(images[index]);
    show.setText("一共有"+images.length+"张图片,当前是第"+(index+1)+"张图片");

    //当点击按钮时,图像切换并显示相应的信息
    up.setOnClickListener(new OnClickListener()
    {

      @Override
      public void onClick(View arg0)
      {
        if(index>0)
          index--;
        else
          index=images.length-1;

        image.setImageResource(images[index]);
        show.setText("一共有"+images.length+"张图片,当前是第"+(index+1)+"张图片");
      }
    });

    //同理,当点击按钮时,图像切换并显示相应的信息
    dowm.setOnClickListener(new OnClickListener()
    {
      public void onClick(View arg0)
      {
        if(index<images.length-1)
          index++;
        else
          index=0;

        image.setImageResource(images[index]);
        show.setText("一共有"+images.length+"张图片,当前是第"+(index+1)+"张图片");
      }
    });
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }

}

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

相关文章

  • Android开发实现的文本折叠点击展开功能示例

    Android开发实现的文本折叠点击展开功能示例

    这篇文章主要介绍了Android开发实现的文本折叠点击展开功能,涉及Android界面布局与属性控制相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • Android UI新组件学习和使用

    Android UI新组件学习和使用

    在本篇文章中我们给大家总结了关于学习Android UI新组件的知识点总结以及注意点详解,有需要的朋友跟着学习下。
    2018-03-03
  • Android自定义View之渐变色折线图的实现

    Android自定义View之渐变色折线图的实现

    折线图的实现方法在github上有很多开源的程序,但是对于初学者来讲,简单一点的教程可能更容易入门,下面这篇文章主要给大家介绍了关于Android自定义View之渐变色折线图的相关资料,需要的朋友可以参考下
    2022-04-04
  • Android应用中使用DOM方式解析XML格式数据的基本方法

    Android应用中使用DOM方式解析XML格式数据的基本方法

    这篇文章主要介绍了Android应用中使用DOM方式解析XML格式数据的基本方法,值得注意的是DOM方式解析的效率并不高,在数据量大的时候并不推荐使用,需要的朋友可以参考下
    2016-04-04
  • Android开发之开关按钮控件ToggleButton简单用法示例

    Android开发之开关按钮控件ToggleButton简单用法示例

    这篇文章主要介绍了Android开发之开关按钮控件ToggleButton简单用法,结合实例形式分析了Android开关按钮控件ToggleButton的相关xml布局与调用操作技巧,需要的朋友可以参考下
    2017-12-12
  • Android高级动画篇之SVG矢量动画范例

    Android高级动画篇之SVG矢量动画范例

    矢量动画即是在计算机中使用数学方程来描述屏幕上复杂的曲线,利用图形的抽象运动特征来记录变化的画面信息的动画,本篇带你了解在Android中的矢量动画
    2021-11-11
  • Android把svg图片转为jpg保存到相册图库

    Android把svg图片转为jpg保存到相册图库

    这篇文章主要为大家详细介绍了Android把svg图片转为jpg保存到相册图库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 老生常谈Android HapticFeedback(震动反馈)

    老生常谈Android HapticFeedback(震动反馈)

    下面小编就为大家带来一篇老生常谈Android HapticFeedback(震动反馈)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 新手必看Android Studio入门详解

    新手必看Android Studio入门详解

    上篇文章已经说过了Android Studio的安装配置,这篇文章主要介绍了Android Studio入门详解以及一些常见的报错,新手同学一起从这里开始完成我们的第一个Android项目吧!
    2021-08-08
  • Android编程开发之Spinner控件用法实例分析

    Android编程开发之Spinner控件用法实例分析

    这篇文章主要介绍了Android编程开发之Spinner控件用法,结合实例形式较为详细的分析了下拉列表Spinner的具体使用技巧,需要的朋友可以参考下
    2015-12-12

最新评论