android 滑动缩放监听,基于Android的ViewPager动画特效实现页面左右滑动效果(实现缩放...
基于Android的ViewPager动画特效实现页面左右滑动效果(实现缩放
基于Android的ViewPager动画特效实现页面左右滑动效果(实现缩放和透明效果)
在上一个项目的基础上做修改,项目包截图如下:
ScaleTransformer方法在开发中ViewPager是经常用到的,自从Andriod3.0以后增加了动画的效果,让我们的App页面展示更加的生动,当然对于Viewpager来说,也增加了切换的动画。我们平时使用的是ViewPager的默认切换效果,ViewPager自带了一个setPageTransformer用于设置切换动画。
(这里我实现的是左右滑动页缩放效果,页面的不透明度也会随之变化)
新建一个transformer文件夹,里面新建一个ScaleTransformer.java文件,实现他的接口
public class ScaleTransformer implements ViewPager.PageTransformer
重写他的方法
在这个方法体内完成动画的编写,要操作两个View,一个是当前滑动的View,一个是即将出现的那个View,这个方法传递两个参数,一个是view,一个是position:
一个view怎么实现两个view,这里就通过Log日记来找他们的规律(这里就不详细讲解)
public void transformPage(@NonNull View view, float position) {
}
通过打印日志文件找出一下规律:
从a->b
a页面的position的变化是从0,1
b页面的position的变化是从1,0
从b->a
a页面的position的变化是从-1,0
b页面的position的变化是从0,1
我们定义一个常数为0.75f,通过这个数字变化实现页面变化
所以就有了,如果我们从a->b,把a页面的position(0,1)变成[1,0.75],把b页面的position(1,0)变成[0.75,1]
如果我们从b->a,把a页面的postition : (1,0) [1,0.75],把b页面的position(0,1)变成[0.75,1]
这种方式就实现了页面的缩放
这里缩放效果实现了,我们也可以设置页面的透明度,根据缩放效果来设置透明的效果
这里同样是设置一个常数变量,通过变量数值的变化来改变页面
这里根据刚才的规律,把 MIN_ALPHA + (1-MIN_ALPHA) * (1+position);的数值赋值给常熟变量
通过view.setAlpha();的方式来实现。
具体实现代码如下:
package com.example.splash.transformer;
import android.support.annotation.NonNull;
import android.support.v4.view.ViewPager;
import android.view.View;
import com.example.splash.utils.L;
public class ScaleTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.5f;
private static final float MIN_ALPHA = 0.5f;
@Override
//在这个方法体内完成动画的编写
//要操作两个View,一个是当前滑动的View,一个是即将出现的那个View
public void transformPage(@NonNull View view, float position) {
//通过打印日志寻找规律
L.d(view.getTag() + " , pos = " + position);
//a->b
//a , positiom : (0,-1)
//b , postition : (1,0)
//b->a
//a , positiom : (-1,0)
//b , postition : (0,1)
if (position <= -1){
view.setScaleX(MIN_SCALE);
view.setScaleY(MIN_SCALE);
view.setAlpha(MIN_ALPHA);
}else if (position <= 1){
if (position < 0){//左边这个界面
//a->b position : (0,1) 把(0,1)变成[1,0.75]
float scaleA = MIN_SCALE + (1 - MIN_SCALE) * (1 + position);
view.setScaleX(scaleA);
view.setScaleY(scaleA);
//设置滑动的透明度
float alphaA = MIN_ALPHA + (1-MIN_ALPHA) * (1+position);
view.setAlpha(alphaA);
}else {//右边的这个界面
//a->b
//b , postition : (1,0) [0.75,1]
float scaleB = MIN_SCALE + (1 - MIN_SCALE) * (1 - position);
view.setScaleX(scaleB);
view.setScaleY(scaleB);
//设置滑动的透明度
float alphaB = MIN_ALPHA + (1-MIN_ALPHA) * (1+position);
view.setAlpha(alphaB);
}
}else {
view.setScaleX(MIN_SCALE);
view.setScaleY(MIN_SCALE);
view.setAlpha(MIN_ALPHA);
}
}
}
最后到MainActivity.java中去调用ViewPager的setPageTransformer()来实现动画效果
mVpMain.setPageTransformer(true,new ScaleTransformer());
效果如下图所示:
最后附上我GitHub上的源码连接:
https://github.com/ChengCeng/Splash.git
基于Android的ViewPager动画特效实现页面左右滑动效果(实现缩放相关教程
android 滑动缩放监听,基于Android的ViewPager动画特效实现页面左右滑动效果(实现缩放...相关推荐
- android个人理财通项目_基于Android个人理财系统设计与实现.doc
基于Android个人理财系统设计与实现 基于Android个人理财系统设计与实现 摘要:随着Android移动应用的飞速发展人们的日常生活越来越离不开移动应用设备.该系统是基于Android移动应用 ...
- android应用课程设计报告,基于Android的多媒体播放器课程设计报告.doc
基于Android的多媒体播放器课程设计报告.doc 基于Android的多媒体播放器课程设计报告2014-01-02 224652 转载标签 android多媒体播放器嵌入式课程设计报告it分类 我 ...
- Android媒体播放器设计,基于Android系统多媒体播放器的设计与实现
基于Android系统多媒体播放器的设计与实现 移动互联网自从其出现就以极强的吸引力捕获了全世界的关注,近些年尤以为甚,各类相关产品也随之蓬勃发展,Android智能手机就是其中之一.另外随着科技发展 ...
- android记事本的设计报告,基于android记事本的设计与开发开题报告.doc
基于android记事本的设计与开发开题报告.doc 太 原 科 技 大 学 华 科 学 院毕业设计开题报告学 生 姓 名学 号学 院.系 专 业论 文 题 目基于android的记事本的开发与设计指 ...
- 一篇很好的关于Android的本科毕业论文《基于android手机通讯录的设计与实现毕业论文》转自百度
本文转自: http://wenku.baidu.com/view/bb7dad58804d2b160b4ec058.html 相应的word文档csdn下载地址: http://download.c ...
- 基于android的2048游戏设计,基于Android平台的2048游戏设计与开发.docx
基于Android平台的2048游戏设计与开发 高级操作系统论文(设计) 题 目 基于Android个人2048 小游戏的设计与开发姓 名 学 号 院. 系 信息学院 专 业 指导教师 职称(学历)目 ...
- 基于android点餐系统需求分析,基于android的点餐系统的需求分析
基于android的点餐系统的需求分析 基于 Android 的点餐系统的需求分析1 功能需求传统的餐饮行业,就像我们平时在街边看到的小餐馆一类的,我们点菜的时候都是有服务员站在我们旁边,我们点一个他 ...
- android学生个人事物管理系统,基于Android平台的学生个人事务管理系统的设计与实现(整理版).doc...
DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF;DS 摘 要 Android智能手机越来越普及 ...
- 基于Android的校园二手商品交易平台,基于Android校园二手交易网站毕业设计论文.doc...
基于Android校园二手交易网站毕业设计论文 本科生毕业设计(论文) 题 目: 基于Android的校园二手交易网站 姓 名: 学 号: 学 院: 专 业: 年 级: 校内指导教师: (签名) 校外 ...
最新文章
- 【转】清理Visual Studio打开的项目和文件、查找和最近引用组件痕迹
- Android开发中常见的设计模式
- 百分比单位始终根据父元素相应值来计算_CSS Viewport 单位,很多人还不知道使用它来快速布局!...
- tomcat的class加载的优先顺序
- ubuntu 16.0安装ros-kinetic
- 使用keepalived搭建mysql主从备份、切换
- SQL Server 2005中专用管理员连接 (DAC) 使用技巧修改系统表的方法
- 五菱汽车:并不知悉导致股价及成交量上升的任何原因
- html5 app list,让web app更快的HTML5最佳实践
- 54 字符流中第一个不重复的字符
- 4.C++深入理解 面向对象部分3
- BrnShop开源网上商城第三讲:插件的工作机制
- 23_使用dtree展示所有分类
- IE无法安装HP-QC插件
- flutter 基础知识点总结
- 第三十届香港金像奖(转)
- Halcon 算子 circularity
- SWING HACKS电子书及范例代码
- CDH 6系列(CDH 6.0.0、CDH 6.1.0、CDH 6.2.0等)安装和使用
- 计算机设计大赛感言,计算机编程比赛获奖感言.doc
热门文章
- 用python解析html
- 如何使得OCX控件能响应PreTranslateMessage消息?
- Word 2003中对不同的节设置不同的页面边框的特殊情况小结
- python 学习笔记 (核心)
- [RK3288][Android6.0] 系统按键驱动流程分析【转】
- 在Unity中实现屏幕空间反射Screen Space Reflection(2)
- App_Data 目录中的数据库位置指定了一个本地 SQL Server
- java常见面试题及答案 1-10(基础篇)
- 文件 md5 查看 命令
- 大公司都有哪些开源项目~~~简化版