简介

ViewFlipper是Android自带的一个多页面管理控件且可以自动播放!它和ViewPager有所不同,ViewPager继承自ViewGroup,是一页一页的,可以带动画效果,可以兼容低版本;而ViewFlipper继承ViewAnimator,是一层一层的,切换View的时候可以设置动画效果,是Android 4.0才引入的新控件。使用场景和ViewPager基本一样,在很多时候都是用来实现进入应用后的引导页或者用于图片轮播显示。
常用方法
setInAnimation:View进入屏幕时使用动画;
setOutAnimation:View退出屏幕时使用动画;
showNext:显示ViewFlipper里的下一个View视图;
showPrevious:显示ViewFlipper里的上一个View视图;
setFlipInterval:View之间切换的时间间隔;
setAutoStart:是否可以自动播放,true为自动播放,false为不自动播放;
startFlipping:自动循环切换播放;
stopFlipping:停止自动切换播放;
ViewFlipper加入View的两种方法
1.静态导入
所谓的静态导入就是像以下方式那样,将一个个页面添加到ViewFlipper的中间!
<ViewFlipper android:id="@+id/vf_help" android:layout_width="match_parent" android:layout_height="match_parent" android:flipInterval="3000" android:inAnimation="@anim/right_in" android:outAnimation="@anim/right_out"> <include layout="@layout/page_help_one" /> <include layout="@layout/page_help_two" /> <include layout="@layout/page_help_three" /> <include layout="@layout/page_help_four" /> </ViewFlipper>
2.动态导入
所谓的动态导入就是像以下方式那样,通过addView方法填充View!
mVfHelp = (ViewFlipper) findViewById(R.id.vf_help);
for (int i = 0; i < resId.length; i++) {
mVfHelp.addView(getImageView(resId[i]));
}
使用示例
效果图:
使用ViewFlipper实现图片轮播 - 静态导入
切换动画:
1.right_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="1000" android:fromXDelta="100%p" android:toXDelta="0" /> </set>
2.right_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="1000" android:fromXDelta="0" android:toXDelta="-100%p" /> </set>
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ViewFlipper android:id="@+id/vf_help" android:layout_width="match_parent" android:layout_height="match_parent" android:flipInterval="3000" android:inAnimation="@anim/right_in" android:outAnimation="@anim/right_out"> <include layout="@layout/page_help_one" /> <include layout="@layout/page_help_two" /> <include layout="@layout/page_help_three" /> <include layout="@layout/page_help_four" /> </ViewFlipper> </LinearLayout>
Java文件调用:
public class MethodOneActivity extends BaseActivity {
private ViewFlipper mVfHelp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_method_one);
mVfHelp = (ViewFlipper) findViewById(R.id.vf_help);
mVfHelp.startFlipping();
}
}
支持手势滑动的ViewFlipper - 动态导入
切换动画:
1.left_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="1000" android:fromXDelta="-100%p" android:toXDelta="0" /> </set>
2.left_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="1000" android:fromXDelta="0" android:toXDelta="100%p" /> </set>
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ViewFlipper android:id="@+id/vf_help" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
Java文件调用:
private void initData() {
//实例化SimpleOnGestureListener与GestureDetector对象
mgListener = new MyGestureListener();
mDetector = new GestureDetector(mActivity, mgListener);
//动态添加子View
for (int i = 0; i < resId.length; i++) {
mVfHelp.addView(getImageView(resId[i]));
}
}
/**
* @Description 重写onTouchEvent触发MyGestureListener里的方法
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
return mDetector.onTouchEvent(event);
}
/**
* @Description 自定义一个View类下的GestureDetector
*/
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float v, float v1) {
if (e1.getX() - e2.getX() > MIN_MOVE) {
mVfHelp.setInAnimation(mActivity, R.anim.right_in);
mVfHelp.setOutAnimation(mActivity, R.anim.right_out);
mVfHelp.showNext();
} else if (e2.getX() - e1.getX() > MIN_MOVE) {
mVfHelp.setInAnimation(mActivity, R.anim.left_in);
mVfHelp.setOutAnimation(mActivity, R.anim.left_out);
mVfHelp.showPrevious();
}
return true;
}
}
项目地址 ☞ 传送门
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# ViewFlipper
# 翻转视图
# 解析Android中实现滑动翻页之ViewFlipper的使用详解
# Android中ViewFlipper的使用及设置动画效果实例详解
# Android TextSwitcher文本切换器和ViewFlipper使用详解
# Android ViewFlipper用法实例分析
# Android ViewFlipper简单用法解析
# Android使用ViewFlipper实现图片切换功能
# Android 使用ViewPager实现图片左右循环滑动自动播放
# Android自动播放Banner图片轮播效果
# Android实现自动播放图片功能
# Android使用自定义属性实现图片自动播放滚动的功能
# Android开发之ViewFlipper自动播放图片功能实现方法示例
# 可以自动
# 自动播放
# 都是
# 两种
# 有所不同
# 自定义
# 重写
# 自带
# 大家多多
# 多页
# 传送门
# anim
# outAnimation
# right_in
# inAnimation
# id
# vf_help
# lt
相关文章:
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
建站168自助建站系统:快速模板定制与SEO优化指南
建站之星导航菜单设置与功能模块配置全攻略
北京网站制作的公司有哪些,北京白云观官方网站?
高端建站三要素:定制模板、企业官网与响应式设计优化
如何在七牛云存储上搭建网站并设置自定义域名?
制作网站公司那家好,网络公司是做什么的?
如何用低价快速搭建高质量网站?
如何快速生成ASP一键建站模板并优化安全性?
如何用免费手机建站系统零基础打造专业网站?
,购物网站怎么盈利呢?
c# 在高并发场景下,委托和接口调用的性能对比
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
建站之星后台密码如何安全设置与找回?
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何打造高效商业网站?建站目的决定转化率
5种Android数据存储方式汇总
如何用VPS主机快速搭建个人网站?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
如何选择服务器才能高效搭建专属网站?
建站之星如何修改网站生成路径?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何快速搭建高效可靠的建站解决方案?
如何在万网主机上快速搭建网站?
如何快速生成凡客建站的专业级图册?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
建站之星免费模板:自助建站系统与智能响应式一键生成
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
高性价比服务器租赁——企业级配置与24小时运维服务
如何实现建站之星域名转发设置?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
无锡营销型网站制作公司,无锡网选车牌流程?
如何高效配置香港服务器实现快速建站?
网页设计网站制作软件,microsoft office哪个可以创建网页?
建站主机CVM配置优化、SEO策略与性能提升指南
建站之星如何优化SEO以实现高效排名?
如何用IIS7快速搭建并优化网站站点?
表情包在线制作网站免费,表情包怎么弄?
如何用已有域名快速搭建网站?
建站之星安装后如何自定义网站颜色与字体?
如何续费美橙建站之星域名及服务?
建站上市公司网站建设方案与SEO优化服务定制指南
专业网站建设制作报价,网页设计制作要考什么证?
如何在景安云服务器上绑定域名并配置虚拟主机?
如何在建站主机中优化服务器配置?
建站之星微信建站一键生成小程序+多端营销系统
*请认真填写需求信息,我们会在24小时内与您取得联系。