安卓高级组件------图片切换器
2017-03-03 04:57
190 查看
安卓图像切换器<ImageSwitch>是一种能够实现图像序列播放的组件,类似于“windows照片查看器”点击左右按钮实现按顺序查看照片。ImageSwitch实际上是继承了ViewSwitch,重写了ViewSwitch的showNext() showprevious()两个方法,这使得查看上下某张图片变得十分简单。
ImageSwitch提供了一个ViewFactory接口,ViewFactory生成的View组件必须是ImageView。进行图片切换时,只要调用setImageResource(int resid) 方法更换图片。
图片切换器的实现:
1.新建工程,布局中放入ImageSwitch组件和两个按钮
2.在主活动创建一个图像id数组和图像切换器对象还有按钮
3.获取组件实例化并设置ImageSwitch.setFactory()
4.改按钮加监听,监听接口在Activity实现。此处注意,监听事件加上以后,获取的是点击的View组件id,通过switch判断点击的按钮是上一张还是下一张的按钮。
其实,监听接口使用的是View的监听接口,返回的对象是View,通过View.getId()获取
运行效果:
总结:我们主Activity实现的View的接口,
public void onClick(View v) {},在这个方法里面我们队v进行判断,反应了安卓组件是继承自View类。
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类。
相关文章推荐
- android学习之路(三)高级组件之图片切换器<ImageSwicther/>以及final关键字的基本用法
- Qt5.7中 QtQuick使用风格组件 安卓图片马赛克问题解决
- 安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
- React-Native开发:react-native-image-crop-picker图片上传组件的使用(安卓)
- 【Android开发】高级组件-图像切换器
- Android开发-高级网络组件(2)使用Volley加载网络图片-AndroidStudio
- 安卓高级组件------网格视图
- 安卓入门--四大组件--Service高级用法
- 安卓高级 Android图片缓存之初识Glide
- 安卓高级 Android图片缓存之初识Glide
- Android高级组件ImageSwitcher图像切换器使用方法详解
- 安卓高级组件----自动完成文本框
- Android 高级UI设计笔记12:ImageSwitcher图片切换器
- 安卓高级Fresco图片框架的时候
- 安卓高级组件-------选项卡
- 安卓高级组件----进度条
- 安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
- 安卓界面组件-----图片视图
- 安卓Service组件使用系列3:使用IntentService下载网络图片
- yii2高级应用之自定义组件实现全局使用图片上传功能的方法