ImageSwitcher图像切换器的使用实例
作者:小龙 发布时间:2022-10-29 13:16:02
标签: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;
}
}
来源:https://blog.csdn.net/qq_36631076/article/details/78270066


猜你喜欢
- JVM内存模型/内存空间Java虚拟机JVM运行起来,就会给内存划分空间,这块空间成为运行时数据区。运行时数据区主要划分为以下 6
- 什么是容器?在Java的GUI界面设计中,关于容器的理解,从字面意思我们就可以认为它是存放控件的地方,而这个地方依托在窗体之上,常用的容器是
- Android 1.5之后将调节亮度的api隐藏了,不过android的源码中依然有方法可以实现,如下:IPowerManager powe
- 本文实例汇总了Java各种排序算法。分享给大家供大家参考,具体如下:1. 冒泡排序:public class SortTest { pub
- 简介石头剪刀布游戏,进入游戏后,玩家需要输入玩家姓名。系统界面之后弹出欢迎界面,玩家可以选择出拳或者退出游戏。玩家选择出拳后同电脑出拳比较,
- /** * 考拉兹猜想:Collatz Conjecture * 又称为3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜
- 前言可能很多情况下,我们都会有在activity中获取view 的尺寸大小(宽度和高度)的需求。面对这种情况,很多同学立马反应:这么简单的问
- 支付宝今年推出了新的转账接口alipay.fund.trans.uni.transfer(升级后安全性更高,功能更加强大) ,老转账接口al
- 将网络资源url转化为File文件将互联网上的http开头的url资源,保存到本地。 private File getNetUrlHttp(
- 本文实例为大家分享了C#多线程Thread使用的示例代码,供大家参考,具体内容如下多线程:线程生命周期状态图:C#线程优先级(概率高低):基
- 自动生成的代码报错解决办法:把自动xml文件中自动生成的二级缓存注释掉来源:https://blog.csdn.net/weixin_447
- 温故而知新网上说多进程的文章很多,不过基本都是在讨论很深的东西,这是需要去专研的,而我是来这篇是用来偷懒的(应用层次),记录的都是自己对多进
- 一、内部存储内部存储,位于data/data/包名/路径下是否需要用户权限:否是否能被其他应用访问:否卸载应用数据是否被删除:是内部存储控件
- Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的AP
- 引言Android studio 是2020 年的版本,有点老,昨天突发想法,升级到了 Android Studio Electric Ee
- 目录时间轴是前端UI经常用到的效果,先看下效果图:实现一、借助 Container 中 decoration 属性,设置左侧的 border
- MojoUnityJson 是使用C#实现的JSON解析器 ,算法思路来自于游戏引擎Mojoc的C语言实现 Json.h 。借助C#的类库,
- SpringBoot使用protobuf格式的接口建立SpringBoot项目,pom.xml内容如下:<?xml version=&
- 简介相信大家有配置过多数据源,或者即将配置多数据的朋友们,会发现网上大概有以下几种方案:1. 使用 AOP 切片进行动态数据源切换2. 使用
- 我在5月份的时候就申请了洞态IAST企业版内测,算是比较早的一批用户了。聊聊几个我比较在意的问题,比如API接口覆盖率、第三方开源组件检测以