问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

安卓ViewFlipper的使用详解

发布网友 发布时间:2024-09-17 07:25

我来回答

1个回答

热心网友 时间:5小时前

ViewFlipper的介绍和使用

ViewFlipper是Android自带的一个多页面管理控件,且可以自动播放!和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层的,和ViewPager一样,很多时候,用来实现进入应用后的引导页,或者用于图片轮播。

一、常用的属性和方法

属性:

android:inAnimation//设置View或ImageView进入屏幕时使用的动画android:outAnimation//设置View或ImageView退出屏幕时使用的动画android:flipInterval//设置View或ImageView之间切换的时间间隔

常用方法:

setInAnimation:设置View或ImageView进入屏幕时使用的动画

setOutAnimation:设置View或ImageView退出屏幕时使用的动画

showNext:调用该方法来显示ViewFlipper里的下一个View或ImageView

showPrevious:调用该方法来显示ViewFlipper的上一个View或ImageView

setFilpInterval:设置View或ImageView之间切换的时间间隔

startFlipping:使用上面设置的时间间隔来开始切换所有的View或ImageView,切换会循环进行

stopFlipping:停止View或ImageView切换

二、静态导入

运行效果:

实现这个效果非常的简单

编写viewpfilper.xml布局文件

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ViewFlipperandroid:id="@+id/flipper"android:layout_width="match_parent"android:layout_height="match_parent"android:flipInterval="2000"><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx1"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx2"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx3"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx4"/></ViewFlipper></LinearLayout>

编写ViewFliper活动代码

publicclassViewpFilperextendsAppCompatActivity{privateViewFlippermFilper;@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.viewpfilper);mFilper=findViewById(R.id.flipper);mFilper.startFlipping();}}

当我们添加了动画的时候,效果就变成这样了:

我们在res目录下新建一个anim文件夹,再新建right_in.xml、right_out.xml存放动画

right_in.xml

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="1500"android:fromXDelta="100%p"android:toXDelta="0"/></set>

right_out.xml

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="1500"android:fromXDelta="0"android:toXDelta="-100%p"/></set>

最后在viewpfilper.xml布局文件中引用就行

二、动态导入(支持手势滑动)

我们可以通过对手势的监听,自由的滑动。不滑动也可以自己动。轮播图就是这样效果。

运行效果:

我们在上一个代码的基础上修改。

在anim文件下再添加left_in.xml、left_out.xml,让我们左右滑动更加的流畅

left_in.xml

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="-100%p"android:toXDelta="0"/></set>

left_in.xml

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="0"android:toXDelta="100%p"/></set>

将right_in.xml、right_out.xml的属性Android:duration="500"设置为500,和左右进出的一样,不然滑动会很慢,还有左右滑动不和谐

GestureDetector手势检测器,监听我们的手势动作

并且重写onTouchEvent触发MyGestureListener里的方法

布局文件不变

编写ViewFliperActivity的java代码

publicclassViewpFilperextendsAppCompatActivity{privateViewFlippermFilper;privateGestureDetectormDetector;//手势探测器privateMyGestureListenermMyGestureListener;@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.viewpfilper);mFilper=findViewById(R.id.flipper);//实例化SimpleOnGestureListener与GestureDetector对象mMyGestureListener=newMyGestureListener();mDetector=newGestureDetector(this,mMyGestureListener);mFilper.startFlipping();}@OverridepublicbooleanonTouchEvent(MotionEventevent){returnmDetector.onTouchEvent(event);}privateclassMyGestureListenerextendsGestureDetector.SimpleOnGestureListener{privatefinalstaticintMIN_MOVE=200;//最小距离//OnFling中根据X轴方向移动的距离和速度来判断当前用户是向左滑还是向右滑,//从而利用showPrevious()或者showNext()来显示上一张或者下一张图片@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){if(e1.getX()-e2.getX()>MIN_MOVE){mFilper.setInAnimation(getApplicationContext(),R.anim.right_in);mFilper.setOutAnimation(getApplicationContext(),R.anim.right_out);mFilper.showNext();}elseif(e2.getX()-e1.getX()>MIN_MOVE){mFilper.setInAnimation(getApplicationContext(),R.anim.left_in);mFilper.setOutAnimation(getApplicationContext(),R.anim.left_out);mFilper.showPrevious();}returntrue;}}}

到这里ViewFlipper的基本使用就差不多了。

安卓ViewFlipper的使用详解

ViewFlipper的介绍和使用ViewFlipper是Android自带的一个多页面管理控件,且可以自动播放!和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层的,和ViewPager一样,很多时候,用来实现进入应用后的引导页,或者用于图片轮播。一、常用的属性和方法属性:android:inAnimation//设置View或ImageView进入...

安卓内嵌h5能够手势滑动功能,而ios不能实现为什么

总得一句话要重写onTouchEvent1手势滚动有很多方法:可用viewpager实现view的左右滑屏,也可以用ViewFlipper,还有笨方法就是一个imageview,获取按下抬起坐标,判断左滑右滑,然后set另一张图片进去。2缩放也有很多做法正统的做法是把imagevi安卓内嵌h5能够手势滑动功能,而ios不能实现为什么 ...

oversip 用什么语言写的

安卓手机软件开发机型覆盖范围超过113款,其整体设计采用mvc架构。自定义实现产品列表显示模式,自定义实现按键放大缩小动画效果,利用ViewFlipper实现不同界面间滑动的切换效果,并配专业的测试,全面保障APP品质。【IOS 开发】iOS开发基于Apple的Cocoa Touch框架,采用 MVC (Model View Controller) 的设计模式,使用H...

安卓代码中,我有五张图片,设置一个button,如何点击一次button就切换下...

第一种:使用动画的方法实现:(代码繁琐)这种发放需要:两个动画效果,一个布局,一个主类来实现,不多说了,来看代码吧:public class IamgeTrActivity extends Activity { /** Called when the activity is first created. */ public ImageView imageView;public ImageView imageView2;public Animation a...

手机网页用什么开发

安卓手机软件开发机型覆盖范围超过113款,其整体设计采用mvc架构。自定义实现产品列表显示模式,自定义实现按键放大缩小动画效果,利用ViewFlipper实现不同界面间滑动的切换效果,并配专业的测试,全面保障APP品质。【IOS 开发】iOS开发基于Apple的Cocoa Touch框架,采用 MVC (Model View Controller) 的设计模式,使用...

reaver使用详解 cppcheck使用详解 greendao使用详解 rancher使用详解 windbg使用详解 shiro使用详解 sonar使用详解 mapbox使用详解 安卓破解游戏
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我是一个手机贩子,我在闲鱼上花700块买了一部小米8,下单前忘了问屏幕... vivoX510T 我双清之后不小心把sd卡也格式化了 现在手机无法用wifi 蓝 ... 怎么删除vivox510t手机中的两个系统!第二个系统是刷机精灵上面安装的... recovery在vivox510t中怎么使用 我买了个多玩弹弹堂的游戏号,请问现在怎么办才不被找回 最安全?_百度... 多玩弹弹堂绿色点券是干什么的 多玩歪歪弹弹堂我已经开通一个月的弹王盟约.现在如果再开6个月的弹王... 厦门海底世界游玩多长时间 科学城博能电子厂怎么样 龙之谷手游海龙巢穴怎么打 海龙巢穴通关技巧攻略 《沉香如屑沉香重华》余墨受伤 车辆违停被贴罚单扣分吗 违章停车被贴罚单扣分吗? 什么样的分手理由才合理? 怎样分手是合理的? 为什么头上容易出汗 头上容易出汗 小孩头上汗多什么原因 宝宝头上老出汗怎么回事 头上容易出汗是什么原因 头上脸上出汗怎么回事 西宁与兰州一个档次吗 西宁与兰州哪个城市好 兰州与西宁比哪个好 西宁和兰州哪个好 金针菇的英文真的是seeyoutomorrow吗? 西安市2012年出生率,2012陕西周边旅游 2014年各省出生人口 田家会街道办事处机构职能 三元里省妇幼是不是越秀区? 广东省越秀妇幼晚上可以陪护吗 安卓手机怎么设置锁频照片自动播放照片 阿里“三板斧”的运作原理 头部出汗多是什么病 几许风雨的歌词是什么? 怀孕吃阿莫西林可以吗 怀孕初期可以吃阿莫西林吗 怀孕能吃阿莫西林胶囊吗 周生如故原著小说 :原著小说《一生一世美人骨》简介 怀孕初期吃了阿莫西林可以吗 刚怀孕可以吃阿莫西林胶囊吗 木有二声吗? 三全儿童水饺食用方法 饺子馅能不能放蚝油?牢记“4放3不放”,饺子香嫩多汁,真好吃 奥迪是哪国生产的? 奥迪q72.0t运动跟3.0技术,怎么选???难道了? 奥迪Q7准备入手Q7 45运动,问个最实在的问题烧机油吗? 故意杀人致人重伤判刑 故意杀人罪致人重伤怎么判刑 根据规定砍人未遂怎么判 故意杀人未遂致人重伤二级会比故意杀人罪判的轻吗?