Android ImageSwitcher

ImageSwitcher 继承自ViewSwitcher。ImageSwitcher继承自ViewSwitcher,并重写了showNext,showPrevious方法,ViewFactory返回的组件必须是ImageView,使用更简单。只需要两步:

1. 为ImageSwitcher提供一个ViewFactory,ViewFactory返回的只能是ImageView

2. 切换图片时只需要调用ImageSwitcher的

public void setImageDrawable(Drawable drawable) 
public void setImageResource(int resid) 
public void setImageURI(Uri uri) 


 

// -----------ImageSwitcher--------------

		final ImageSwitcher imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);
		Button IButton1 = (Button) findViewById(R.id.IButton1);
		Button IButton2 = (Button) findViewById(R.id.IButton2);

		final int currentPig[] = { -1 };// 数据源设为上面的那个数组。
		// int[] images = {};

		imageSwitcher.setInAnimation(ViewAnimatorDemo.this,
				android.R.anim.fade_in);
		imageSwitcher.setOutAnimation(ViewAnimatorDemo.this,
				android.R.anim.fade_out);

		imageSwitcher.setFactory(new ViewFactory() {

			@Override
			public View makeView() {
				// TODO Auto-generated method stub

				ImageView image = new ImageView(ViewAnimatorDemo.this);
				image.setScaleType(ImageView.ScaleType.FIT_CENTER);
				image.setLayoutParams(new ImageSwitcher.LayoutParams(
						LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

				return image;
			}
		});

		OnClickListener IListener = new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (v.getId() == R.id.IButton1) {
					if (--currentPig[0] < 0)
						currentPig[0] = images.length - 1;
				} else {
					if (++currentPig[0] >= images.length)
						currentPig[0] = 0;
				}
				imageSwitcher.setImageResource(images[currentPig[0]]);
			}
		};

		IButton1.setOnClickListener(IListener);
		IButton2.setOnClickListener(IListener);
		// 初始化一下
		currentPig[0] = 0;
		imageSwitcher.setImageResource(images[currentPig[0]]);


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值