博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用户向导左右滑动页面实现之ImageSwitcher
阅读量:5291 次
发布时间:2019-06-14

本文共 2423 字,大约阅读时间需要 8 分钟。

当第一次打开一个app时,通常有一个使用向导介绍本APK的基本功能和用法,这个向导是很重要的,方便用户能高速知道和适应该app如何用。

实现此使用向导有非常多种方法,比方用ImageSwitcher,ViewPager。当然要用ViewSwitcher或是ViewGroup去实现也是能够的,仅仅只是有点大材小用了。

用ImageSwitcher和ViewPager的差别就在于ImageSwitcher能轻松地指定页面切换的动画!这里先总结下ImageSwitcher的实现。

首先,定义布局文件activity_main.xml

布局文件里有一个id为dots的LinearLayout就是一会儿能够切换显示的小圆点。

让你的Activity实现ViewFactory接口,做为imageSwitcher.setFactory的參数,小圆点的实现是依据可切换图片的张数动态加入到dots中的。详细的代码例如以下:

package com.example.imageswitcher;import android.annotation.SuppressLint;import android.app.ActionBar.LayoutParams;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.ViewSwitcher.ViewFactory;public class MainActivity extends Activity implements  ViewFactory {	private ImageSwitcher mSwitcher ;	private LinearLayout mLinearLayout ;	private ImageView[] mImageViewDots ;	private int mIndex = 0 ;	private int mImageRes[] = new int[]{			R.drawable.a,			R.drawable.b,			R.drawable.c,			R.drawable.d,			R.drawable.e,			R.drawable.g	};	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		mLinearLayout = (LinearLayout)findViewById(R.id.dots);		mSwitcher = (ImageSwitcher)findViewById(R.id.switcher);		initDots();		mSwitcher.setFactory(this);		mSwitcher.setImageResource(mImageRes[0]);		mImageViewDots[0].setBackgroundResource(R.drawable.dot_focus);	}			@SuppressLint("NewApi")	public void initDots(){		mLinearLayout.removeAllViews() ;		mImageViewDots = new ImageView[mImageRes.length] ;		for(int i=0 ;i

这里可切换的图片可任意制定。这里来说一下切换动画,这里总有4个动画,分为两组。第一组是当ImageSwitcher向左切换图片的时候,首先setInAnimation是设置即将出现的那张图片的动画,setOutAnimation是设置即将消息的那张图片的动画,各自是left_in,rigth_out。第二组则是与之相反的。四个动画分别例如以下(放在res/anim文件夹下):

left_in.xml

rigth_out.xml

rigth_in.xml

left_out.xml

针对小圆点,我是用drawable.xml文件去画的,在程序中能够指定它的大小。这里设置了两种颜色,用于差别当前在第几个页面。

dot_focus.xml

dot_nomal.xml

我是在Android机顶盒上开发的此Demo,全部捕捉的是左键和右键。假设是手机端的话,能够捕捉手势。上一张大概的图:

接下来将用ViewPager实现此效果。

转载于:https://www.cnblogs.com/gcczhongduan/p/4092766.html

你可能感兴趣的文章
C - Wooden Sticks
查看>>
Spring boot中普通工具类不能使用@Value注入yml文件中的自定义参数的问题
查看>>
[8.3] Magic Index
查看>>
(转·)WMPLib
查看>>
C语言结构体对齐
查看>>
跨应用Session共享
查看>>
Vue动态路由
查看>>
电脑小窍门
查看>>
IDEA环境设置
查看>>
Oracle行列转换小结
查看>>
W-D-S-链接地址
查看>>
3、图片处理
查看>>
HTML-日记3
查看>>
java enum 用法
查看>>
java常见文件操作
查看>>
python虚拟环境的安装和配置
查看>>
在eclipse中添加和删除项目
查看>>
Search a 2D Matrix & II
查看>>
网站更新后客户端缓存问题
查看>>
Android OpenGL ES(四)关于EGL .
查看>>