您的位置:首页 > 其它

安卓高级组件------图片切换器

2017-03-03 04:57 190 查看
        安卓图像切换器<ImageSwitch>是一种能够实现图像序列播放的组件,类似于“windows照片查看器”点击左右按钮实现按顺序查看照片。ImageSwitch实际上是继承了ViewSwitch,重写了ViewSwitch的showNext() showprevious()两个方法,这使得查看上下某张图片变得十分简单。

        ImageSwitch提供了一个ViewFactory接口,ViewFactory生成的View组件必须是ImageView。进行图片切换时,只要调用setImageResource(int resid) 方法更换图片。

图片切换器的实现:

1.新建工程,布局中放入ImageSwitch组件和两个按钮

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >

<ImageSwitcher
android:id="@+id/imageSwitcher1"
android:layout_weight="1"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageSwitcher>

<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上一张" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下一张" />

</LinearLayout>

</LinearLayout>


2.在主活动创建一个图像id数组和图像切换器对象还有按钮

private int[] image = new int[]{R.drawable.photo1,R.drawable.photo2,
R.drawable.photo3,R.drawable.photo4};              //图像数组

private int index = 0;             //下标

private ImageSwitcher is;         //切换器

private Button up,down;


3.获取组件实例化并设置ImageSwitch.setFactory()

is = (ImageSwitcher)findViewById(R.id.imageSwitcher1);

up = (Button)findViewById(R.id.button1);
down = (Button)findViewById(R.id.button2);
up.setOnClickListener(this);
down.setOnClickListener(this);

is.setFactory(new ViewFactory() {

@Override
public View makeView() {
ImageView imageView = new ImageView(MainActivity.this);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);

return imageView;
}
});
is.setImageResource(image[index]);
}


4.改按钮加监听,监听接口在Activity实现。此处注意,监听事件加上以后,获取的是点击的View组件id,通过switch判断点击的按钮是上一张还是下一张的按钮。

其实,监听接口使用的是View的监听接口,返回的对象是View,通过View.getId()获取

up.setOnClickListener(this);
down.setOnClickListener(this);

public void onClick(View v) {

switch(v.getId()){

case R.id.button1:

if(index > 0){
index --;
}else {
index = image.length - 1;
}
is.setImageResource(image[index]);break;

case R.id.button2:
if(index == image.length - 1){
index = 0;
}else {
index ++;
}
is.setImageResource(image[index]);break;
}

}


运行效果:



总结:我们主Activity实现的View的接口,
public void onClick(View v) {},在这个方法里面我们队v进行判断,反应了安卓组件是继承自View类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: