0%

Android ImageSwitcher

ImageSwitcher

就是一个图片显示的一个小工厂类似的东西,使用起来也比较的简单。

1
2
3
4
5
<ImageSwitcher 
android:id="@+id/imageswitcher"
android:layout_width="300dip"
android:layout_height="200dip"
></ImageSwitcher>

我们来编写java的代码
先定义一个int数组:

1
2
private int[] imageId = {R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
private int index = 0;

这个里面存放着我们的图片ID编号。

然后我们初始化一些这个图片工厂控件

1
2
3
iS = (ImageSwitcher) findViewById(R.id.imageswitcher);
iS.setFactory(this);//设置切换image对象
iS.setImageResource(imageId[0]);

这个setFactory必须要有,就是设置一个图片工厂,需要new一个类,我们就写this就可以了,因为我们还需要
implements ViewFactory
实现他的一个接口,如果是new的话呢也是可以的。
然后我们就可以来重写这个接口里面的一个方法:

1
2
3
4
@Override
public View makeView() {
return new ImageView(this);
}

这个就是返回一个ImageView的一个对象,这个我们可以修改这个ImageView的一些属性,所以我们称这个组件是个工厂,这里我们就不设置了。
然后我们用按钮切换的话呢就简单的这样子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn1:
index++;
if(index>=imageId.length)
index = 0;
iS.setImageResource(imageId[index]);
break;
case R.id.btn2:
index--;
if(index <0)
index = imageId.length-1;
iS.setImageResource(imageId[index]);
break;
default:
break;
}
}

setImageResource这个方法我们传进去一个图片ID就可以,我们用数组元素传进去就可以,上面定义了的。