android 翻转切换view,Android ViewFlipper翻转视图使用详解

简介

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的中间!

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">

2.动态导入

所谓的动态导入就是像以下方式那样,通过addView方法填充View!

mVfHelp = (ViewFlipper) findViewById(R.id.vf_help);

for (int i = 0; i < resId.length; i++) {

mVfHelp.addView(getImageView(resId[i]));

}

使用示例

效果图:

9a0afbfebaf11a1565fe68d1903c449c.png

使用ViewFlipper实现图片轮播 - 静态导入

切换动画:

1.right_in.xml

android:duration="1000"

android:fromXDelta="100%p"

android:toXDelta="0" />

2.right_out.xml

android:duration="1000"

android:fromXDelta="0"

android:toXDelta="-100%p" />

布局文件:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

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">

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

android:duration="1000"

android:fromXDelta="-100%p"

android:toXDelta="0" />

2.left_out.xml

android:duration="1000"

android:fromXDelta="0"

android:toXDelta="100%p" />

布局文件:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/vf_help"

android:layout_width="match_parent"

android:layout_height="match_parent" />

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;

}

}

项目地址 ☞ 传送门

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拓扑学初步

拓扑&#xff08;Topology&#xff09;原本是一个数学概念&#xff0c;描述的是几何图形或空间在连续改变形状后还能保持不变的性质。2016 年度的诺贝尔物理学奖颁给的三位物理学家&#xff0c;正是凭借他们在物理学中引入了拓扑的概念。0. 基本概念 & 定义 同胚&#xff1…

android 京东白条支付,京东网银钱包安卓版上线:整合京东白条和小金库

京东金融网银钱包移动版上线 京东账号可直接登录【TechWeb报道】4月1日消息&#xff0c;京东金融今日宣布网银钱包客户端正式在Android平台上线。网银钱包客户端近期也将登录苹果应用商店&#xff0c;用户使用京东账号将可以直接登录。据悉&#xff0c;网银钱包客户端是京东金融…

android 缓存头像,android 实现类似微信缓存和即时更新好友头像示例

引言使用微信时我们会发现&#xff0c;首次进入微信的好友列表时&#xff0c;会加载好友头像&#xff0c;但是再次进入时&#xff0c;就不用重新加载了&#xff0c;而且其他页面都不用重新加载&#xff0c;说明微信的好友头像是缓存在本地的&#xff0c;然后好友修改头像后&…

JQuery 之 跳出循环

1、跳出each循环  return false 跳出循环 return true 进入下一个循环2、跳出for循环  break;直接退出for这个循环。这个循环将不再被执行&#xff01;  continue;直接跳出本次for循环。下次继续执行。  return语句就是用于指定函数返回的值。即使函数主体中还有其他语…

android包结构规范,【Android】Android产品-开发规范

前言为什么需要开发规范&#xff1f;编码规范对于程序员而言尤为重要&#xff0c;有以下几个原因&#xff1a;1)一个软件的生命周期中&#xff0c;80%的花费在于维护2)几乎没有任何一个软件&#xff0c;在其整个生命周期中&#xff0c;均由最初的开发人员来维护3)编码规范可以改…

JavaScript语法(二)

函数&#xff1a;完成某项特定的功能。 函数的四要素&#xff1a;名称、输入、返回值、加工。 定义函数:function&#xff08;定义&#xff09; 函数的名字&#xff08;形参&#xff09;{ 函数体&#xff08;加工&#xff09;} 文本框加 按钮&#xff08;调用&#xff09; …

html 透明度渐变效果,CSS3不透明度渐变?

您可以在CSS中执行此操作&#xff0c;但Chrome浏览器&#xff0c;Safari和Opera的浏览器目前还没有太多的支持。 Firefox目前只支持SVG掩码。有关更多信息&#xff0c;请参阅Caniuse结果。CSS&#xff1a;p {color: red;-webkit-mask-image: -webkit-gradient(linear,left top,…

JSP知识点大致介绍1

解释&#xff1a;当jsp写好&#xff0c;运行服务器&#xff0c;还没有发出请求&#xff08;写网址按Enter&#xff09;&#xff0c;Tomcat的work下是没有字节码文件的。当写网址&#xff1a;localhost&#xff1a;8888/xxxx/index.jsp按Enter,运行后work下就有字节码文件了&…

发一则自己创作的Lae程序员小漫画,仅供一乐

转载于:https://www.cnblogs.com/aaqxhaa1979/p/5817650.html

html打折代码,HTML打折计算价格实现原理与脚本代码

原标题&#xff1a;HTML打折计算价格实现原理与脚本代码打折后价格计算function calculator(){var pricesdocument.getElementById("price");var discountsdocument.getElementById("number");var pay;var selectdocument.getElementById("payfunctio…

Material Design控件使用学习 toolbar+drawerlayout+ Snackbar

效果 1.,导包design包和appcompat-v7 &#xff0c;设置Theme主题Style为NoActionbar 2.custom_toolbar.xml <?xml version"1.0" encoding"utf-8"?><android.support.v7.widget.Toolbar xmlns:android"http://schemas.android.com/apk/res/…

计算机组装虚拟实验,组装计算机的虚拟实验室

摘要&#xff1a;根据初中信息技术教育教学的特点:以实际应用能力为中心,以教育文化素质为根本,以掌握基本概念、强化应用为目的,加强技能训练,注重培养学生动手操作能力。对于提高学生的实际应用能力,模拟实验将是提升课堂效率极为重要的一个坏节。 本文针对目前算机硬件更新速…

使用渐进式JPEG来提升用户体验

今天才认识到原来JPEG文件有两种保存方式他们分别是Baseline JPEG&#xff08;标准型&#xff09;和Progressive JPEG&#xff08;渐进式&#xff09;。两种格式有相同尺寸以及图像数据&#xff0c;他们的扩展名也是相同的&#xff0c;唯一的区别是二者显示的方式不同。 Baseli…

html英文读法,classin读音发音 classln英文怎么读?

classln英文怎么读?class in 读音&#xff1a; [klɑːs] [ɪn] class英 [klɑːs] 美 [kls] in英 [ɪn] 美 [ɪn] 重点词汇&#xff1a; class英 [klɑːs] 美 [kls] n. 等级&#xff1b;阶级&#xff1b;阶层&#xff1b;班级&#xff1b;课&#xff1b;v. 分类 过去式: cla…

季度报告 选择日期_易方达富惠纯债债券型证券投资基金 2018年第4季度报告

2018年12月31日基金管理人&#xff1a;易方达基金管理有限公司基金托管人&#xff1a;中国银行股份有限公司报告送出日期&#xff1a;二一九年一月二十二日1 重要提示基金管理人的董事会及董事保证本报告所载资料不存在虚假记载、误导性陈述或重大遗漏&#xff0c;并对其内容…

Linux学习入门

作为当代前端&#xff0c;前后端的界限越来越小&#xff0c;要想走的更稳&#xff0c;学习Linux操作系统的相关知识是必不可少的。 为什么服务器端采用linux操作系统&#xff1f; 1.linux相对于windows的性能更加稳定 2.前期投入成本低&#xff0c;相比于windows的服务器产品&a…

html垂直边距,html – Styling Bootstrap的btn-group-justified,添加边距和垂直尺寸

HTMLOption 1Option 2Option 3CSS.blocks .btn-primary{padding: 24px 12px;margin: 0 5px;border-radius: 0;}将看起来像&#xff1a;If I apply btn-group-justified class instead of just btn-group,theybecame justified but still not square-shaped,nor they have margi…

iscsi 同步_群晖六盘位旗舰NAS,一文教你如何解决多设备同步,跨平台协调

作为一名非专业后期狗来讲&#xff0c;一直以来在多设备以及不同平台间的数据同步&#xff0c;协同上都想尽了各种办法。众所周知&#xff0c;对于剪辑师来讲。对于工作平台都会有自己的偏好&#xff0c;比如有老师傅会喜欢Adobe的PR作为剪辑软件&#xff0c;90后的年轻人又觉得…

Atitti.java exp ast java表达式语法ast构造器

Atitti.java exp ast java表达式语法ast构造器 /atiplat_cms/src/com/attilax/lang/AstParser.java 原理 分割tokens_slice_li 分析splitor&#xff0c;&#xff0c; 主要是dot 和end 作者:: ★(attilax)>>> 绰号:老哇的爪子 &#xff08; 全名&#xff1a;&#x…

计算机内图标wps云盘怎么去掉,Win10资源管理器WPS云文档图标如何清除

如果用户在Windows10系统中安装了WPS办公软件的话&#xff0c;那么资源管理器中就会自动生成WPS云文档图标。一些用户觉得这样很占用空间&#xff0c;就希望该将其彻底删除。该如何操作呢&#xff1f;接下来&#xff0c;就随小编一起看看具体步骤吧&#xff01;具体如下&#x…