1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android-ViewFlipper(图片轮播 和 手势控制 实例)

Android-ViewFlipper(图片轮播 和 手势控制 实例)

时间:2021-02-10 08:26:28

相关推荐

Android-ViewFlipper(图片轮播 和 手势控制 实例)

1.回顾

上篇 学习了 ViewPager 的 使用的三种方式,分别通过 PagerAdapter , FragmentPagerAdapter 和 FragmentStatePagerAdapter

2. 重点

(1)ViewFlipper

(2)图片轮播 (自动)

(3)手势控制

(4)OnTouchListener

3.ViewFliper

3.1 介绍

多页面管理控件,实现子页面自动切换

3.2 添加View

给ViewFliper加入View的两种方式:

静态导入:将图片写死的,不灵活

动态导入:动态生成 ImageView ,通过 addView() 方法加入到ViewFliper中

3.3 控制

(1)设置时间间隔,自动切换 ,可以添加 切换效果

(2)手势控制 通过 OnTouchListener事件

4.图片轮播 自动切换

4.1 布局实现

添加 id ,后 通过 findViewById 初始化 控件;

<ViewFlipperandroid:id="@+id/flipper"android:layout_width="match_parent"android:layout_height="300dp" ></ViewFlipper>

4.2 业务实现

(1)初始化控件和准备数据

在Drawable 文件夹下 准备 4 张图片 ,声明数组 将 id 添加到数组中;

private ViewFlipper flipper;private int [] ids={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};

(2)代码实现

注意:图片尽量控制在200k以内,否则 报 内存溢出 错误;

flipper=(ViewFlipper) findViewById(R.id.flipper);//动态倒入 :设置资源for (int i : ids) {ImageView imageView=new ImageView(this);//imageView.setBackgroundResource(i);imageView.setImageResource(i);flipper.addView(imageView);}//设置切换时间间隔flipper.setFlipInterval(3000);//启动flipper.startFlipping();

5.手势控制

实现OnTouchListener 事件;

开始的时候,在ACTION_MOVE里判断 ,这样是不好的,切换太频繁了,看不到效果;

最后的实现是,当手指离开的时候,判断切换,故在ACTION_UP里 进行判断;

class flipperOnTouchListener implements OnTouchListener{@Overridepublic boolean onTouch(View v, MotionEvent event) {// 手势判断switch (event.getAction()) {//手势按下case MotionEvent.ACTION_DOWN://获取手指按下的点start=(int) event.getX();break;//手势移动case MotionEvent.ACTION_MOVE://移动判断break;//手离开case MotionEvent.ACTION_UP://按下的点 和结束的点 的插 大于100 为 向右if(start - event.getX()>1000){//可以添加过度效果//下一张flipper.showPrevious();}//按下的点 和结束的点 的插 小于100 为 向左if(start - event.getX()<1000){//上一张flipper.showNext();}break;}return true;}}

给Flipper 添加事件 :

flipper.setOnTouchListener(new flipperOnTouchListener());

6.demo 下载

/detail/lablenet/9044777

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。