首页 > 其他分享 >【Android开发】高级组件-图像切换器

【Android开发】高级组件-图像切换器

时间:2023-03-19 11:06:01浏览次数:42  
标签:index layout 切换器 id drawable 组件 import Android android


图像切换器(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开发】高级组件-图像切换器_SimpleAdapter

标签:index,layout,切换器,id,drawable,组件,import,Android,android
From: https://blog.51cto.com/u_16012040/6130989

相关文章

  • Android Studio 样式和主题背景
    样式和主题背景转载自 StylesandThemes | AndroidDevelopers借助Android中的样式和主题背景,您可以将应用设计的细节与界面的结构和行为分开,其作用类似于网......
  • 【Android 逆向】【攻防世界】easyjni
    1.apk安装到手机,提示需要输入flag2.jadx打开apkpublicclassMainActivityextendsc{static{System.loadLibrary("native");}/*JADXIN......
  • 注册全局组件
    main.js中//注册全局组件importTypeNavfrom'@/components/TypeNav'//第一个参数:全局组件的名字,第二个参数:哪一个组件Vue.component(TypeNav.name,TypeNav) 使......
  • react方式实现rate组件
    看到网上写的rate组件,要么是react的class方式,要么就是基于classNameList的增删改查,总感觉不太完美,于是趁周末自己撸了一个,可以直接拿到自己的页面去试,喜欢请点个赞哦需求......
  • webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载
    webpackensure相信大家都听过。有人称它为异步加载,也有人说做代码切割,那这个家伙到底是用来干嘛的?其实说白了,它就是把js模块给独立导出一个.js文件的,然后使用这个模块的时......
  • ArcGIS Runtime for Android 1 开发环境部署
    AndroidStudio,与VisualStudio一样同为开发IDE,但它对国内的友好程度却不如VisualStudio,所有,有必要记录一下安装部署的主要步骤和注意事项。一、完全清理如果未安装过An......
  • 【Android 逆向】【攻防世界】easy-so
    1.apk安装到手机,随便输入点内容,提示错误2.jadx打开apkbtn.setOnClickListener(newView.OnClickListener(){//fromclass:com.testjava.jack.pingan2.Main......
  • React 实现 动态加载组件
    React实现动态加载组件import{Button}from'antd'importReact,{useState,lazy,Suspense}from'react'//这个地方动态加载组件constItem=lazy(()=>i......
  • Vue组件翻转照片
    使用Vue及自定义组件完成10x10图片表格的点击效果TOP:实现这样翻转照片的效果......
  • MT6737 android 7.0 竖屏横用后u盘以及下载app无法打开
    问题描述:MT6737android7.0竖屏横用后u盘以及下载app无法打开问题的原因:下载APP的布局不支持横屏显示修改方法:diff--gita/frameworks/base/packages/DocumentsUI/Androi......