`

Android学习之图片切换

阅读更多

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/MyLayout"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<ImageSwitcher
		android:id="@+id/myImageSwitcher"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"/>
	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:orientation="horizontal"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent">
		<Button
			android:id="@+id/butPrevious"
			android:text="上一张图片"
			android:enabled="false"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"/>
		<Button
			android:id="@+id/butNext"
			android:text="下一张图片"
			android:enabled="true"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"/>
	</LinearLayout>
</LinearLayout>

 

 

 

MyImageSwitcherDemo.java:

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

public class MyImageSwitcherDemo extends Activity {
	private ImageSwitcher myImageSwitcher = null;					// 图片切换
	private Button butPrevious = null;								// 按钮组件
	private Button butNext = null;									// 按钮组件
	private int[] imgRes = new int[] { R.drawable.ispic_a, R.drawable.ispic_b,
			R.drawable.ispic_c, R.drawable.ispic_d, R.drawable.ispic_e };	// 资源图片ID
	private int foot = 0; 											// 资源读取位置
	@Override
	public void onCreate(Bundle savedInstanceState) { 
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);						// 调用布局管理器
		this.myImageSwitcher = (ImageSwitcher) super
				.findViewById(R.id.myImageSwitcher);				// 取得组件
		this.butPrevious = (Button) super.findViewById(R.id.butPrevious);	// 取得组件
		this.butNext = (Button) super.findViewById(R.id.butNext) ;	// 取得组件
		this.myImageSwitcher.setFactory(new ViewFactoryImpl());		// 设置转换工厂
		this.myImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
				android.R.anim.fade_in));							// 设置动画
		this.myImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
				android.R.anim.fade_out));							// 设置动画
		this.myImageSwitcher.setImageResource(imgRes[foot++]) ;		// 设置图片
		this.butNext.setOnClickListener(new OnClickListenerNext()) ;// 设置单击事件
		this.butPrevious.setOnClickListener(new OnClickListenerPrevious()) ;// 设置单击事件
	}
 
	private class OnClickListenerPrevious implements OnClickListener {
		@Override
		public void onClick(View v) {
			MyImageSwitcherDemo.this.myImageSwitcher
					.setImageResource(imgRes[foot--]);				// 修改显示图片
			MyImageSwitcherDemo.this.checkButEnable(); 				// 设置按钮状态
		}
	}
	
	private class OnClickListenerNext implements OnClickListener {
		@Override
		public void onClick(View v) {
			MyImageSwitcherDemo.this.myImageSwitcher
					.setImageResource(imgRes[foot++]);				// 修改显示图片
			MyImageSwitcherDemo.this.checkButEnable(); 				// 设置按钮状态
		}
	}
	
	public void checkButEnable() {									// 设置按钮状态
		if (this.foot < this.imgRes.length - 1) {
			this.butNext.setEnabled(true);							// 按钮可用
		} else {
			this.butNext.setEnabled(false);							// 按钮不可用
		}
		if (this.foot == 0) {
			this.butPrevious.setEnabled(false);						// 按钮不可用
		} else {
			this.butPrevious.setEnabled(true);						// 按钮可用
		}
	}
	
	private class ViewFactoryImpl implements ViewFactory {
		@Override
		public View makeView() {
			ImageView img = new ImageView(MyImageSwitcherDemo.this);	// 实例化图片显示
			img.setBackgroundColor(0xFFFFFFFF);							// 设置背景颜色
			img.setScaleType(ImageView.ScaleType.CENTER);				// 居中显示
			img.setLayoutParams(new ImageSwitcher.LayoutParams(			// 自适应图片大小
				LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));	// 定义组件
			return img;
		}
	}
}

 

分享到:
评论

相关推荐

    android150种图片切换特效

    在Android开发中,图片切换特效是提升用户体验的重要一环,特别是在设计用户界面或者制作动态壁纸时。本资源“android150种图片切换特效”提供了一套丰富的视觉效果,用于展示图片之间的过渡动画。虽然没有提供源...

    android图片切换效果

    仿新浪新闻、百度、优酷等android图片切换效果,图片添加点击事件。注:在大神基础上修改的。适合学习练手使用

    Android自动切换图片

    总之,“Android自动切换图片”涉及到Android UI组件、动画、线程管理等多个方面,通过学习和实践,开发者可以灵活地为应用增添动态效果,提升用户体验。希望以上的知识点解析能对你有所帮助,并鼓励你继续探索和...

    android开发,gallery图片切换

    尽管如此,了解如何使用`Gallery`进行图片切换仍然是一个重要的历史知识点,对于理解Android UI组件的发展和演变很有帮助。 要实现`Gallery`的图片切换,首先需要在XML布局文件中添加`Gallery`控件,并设置其属性,...

    Android 自定义 ViewPager 打造千变万化的图片切换效果

    "Android 自定义 ViewPager 打造千变万化的图片切换效果"这个主题,主要是探讨如何通过扩展Android的ViewPager或者使用像Jazzy ViewPager这样的第三方库,来创建更具视觉吸引力的图片滑动体验。 首先,自定义...

    Android-Android日夜间模式切换

    6. **动态代码注入**:使用如Butter Knife或ViewBinding等库,可以动态地根据当前主题重新绑定视图资源,使得颜色、图片等元素能即时响应模式切换。 7. **第三方库**:有些第三方库,如`NightModeManager`或`...

    android左右滑动切换图片

    5. **动画效果**:Android提供了多种动画API,如`ObjectAnimator`、`ValueAnimator`或`Animation`类,可以用来为图片切换添加平滑过渡效果。 6. **图片加载库**:为了高效地加载和显示图片,开发者通常会用到像...

    Android学习之Android 5.0分享动画实现微信点击全屏效果

    在Android开发中,实现丰富的用户交互和视觉效果是提升应用体验的关键之一。本文将深入探讨如何在Android 5.0及以上版本中实现类似微信的点击分享动画,即当用户点击分享按钮时,整个屏幕会充满动画效果。我们将通过...

    android 学习资料 pdf ppt

    4. **Android 控件之ImageSwitcher**:ImageSwitcher是Android中的一个控件,用于在两个ImageView之间平滑地切换图片。对应的"MHT"文件可能是对这个控件的深入讲解,包括它的用法、属性、事件处理以及如何实现动画...

    android 跑马灯图片展示+10种切换特效

    为了增强用户体验,还可以监听`ViewPaper`的滚动事件,例如在图片切换时执行特定的操作: ```java viewPaper.setOnPageChangeListener(new ViewPaper.OnPageChangeListener() { @Override public void ...

    Android 自定义圆环动画切换、流式布局的实现.rar

    总的来说,这个项目展示了Android开发中自定义组件、动画以及灵活布局的应用,对于提升UI设计和交互体验具有很高的学习价值。通过理解和实践这些代码,开发者可以更好地掌握Android UI开发技巧,创造出更加生动和...

    Android studio ViewPager2图片切换+底部圆点指示器应用设计

    以上就是关于“Android studio ViewPager2图片切换+底部圆点指示器应用设计”的详细说明。这个过程涵盖了Android开发中一些核心概念,包括组件使用、数据绑定和自定义View,对提升Android开发技能大有裨益。

    android两种页面切换动画效果源码

    在Android应用开发中,页面切换动画是提升用户体验的重要一环,它可以给用户带来更生动、更有趣的操作感受。本资源提供了两种不同的页面...通过深入学习和实践,可以提高对Android动画机制的理解,提升应用的用户体验。

    android应用源码界面切换动画大全.zip

    "android应用源码界面切换动画大全.zip"这个资源包提供了丰富的示例,帮助开发者学习和掌握如何在Android应用程序中实现各种炫酷的界面过渡效果。以下是根据标题和描述所涉及的知识点的详细解释: 1. **Android ...

    android切换图片加载框架 代理

    在Android应用开发中,图片加载框架的切换与代理设计模式是一种常见的优化技术,它涉及到内存管理、线程调度以及用户体验等多个重要方面。本篇将详细探讨Android如何在项目中实现图片加载框架的灵活切换,并利用代理...

    Android中Activity切换动画

    以下是对Android中Activity切换动画的详细说明: 1. **标准动画** Android系统默认提供了几种基本的切换动画,如淡入淡出、滑动等。这些动画可以通过在Manifest.xml文件中的`&lt;activity&gt;`标签内设置`android:...

    Android图片百叶窗,马赛克效果切换

    Android图片切换时,可以设置百叶窗,马赛克效果。 百叶窗可以进行水平,垂直效果的设置。百叶窗的叶片数量也可以根据实际来设置。 马赛克的格子数量可以根据实际来设置,视图中的马赛克逐步清晰显现。 代码完整,...

    android gif图片循环显示

    总结,实现“android gif图片循环显示”主要涉及Android第三方库的使用,特别是`GIFView`库,以及如何在代码中加载、切换和控制GIF动画。理解这些知识点对于提升Android开发技能和应对实际项目需求非常重要。通过...

    Android图片处理源码

    对于动态图片展示,可以使用ImageView的TransitionDrawable或GIF库(如Android-Universal-Image-Loader)实现图片切换动画或播放GIF。 7. **异步处理**: 图片处理通常应在后台线程进行,避免阻塞UI线程。可以...

    Android 卡片层叠式可动态切换布局-IT计算机-毕业设计.zip

    本项目提供的"Android 卡片层叠式可动态切换布局"是一个完整的源码示例,旨在帮助学习者理解如何在Android应用中实现这一功能。源码通常包括了Activity、Fragment、Adapter以及自定义View等关键组件,通过这些组件的...

Global site tag (gtag.js) - Google Analytics