CdlGalleryViewpager

Android 使用ViewPager打造3D画廊效果

主要实现思路是设置PageTransformer

PageTransformer是ViewPager的一个公共成员接口,用于设置当一个页面滑入和滑出的过度特效,当然,由于是通过属性动画来设置的,所以设置的pagetransformer在Android3.0以下会被忽略。

关于实现该接口,只需要实现一个方法即可:

public void transformPage(View page, float position);

对于参数position,需要好好说明一下:

position的取值有如下说明:

position是指的是页面相对于中间页面的位置参数,根据位置不同,0的时候在中间最前面,1的时候页面完全在右边,-1的时候页面完全在左边。如下图所示:

/**

* @author:程龙 date; On 2018/9/19

*/

public class MyTransformation implements ViewPager.PageTransformer {

private static final float MIN_SCALE = 0.85f;

private static final float MIN_ALPHA = 0.5f;

private static final float MAX_ROTATE = 30;

private Camera camera = new Camera();

@Override

public void transformPage(View page, float position) {

float centerX = page.getWidth() / 2;

float centerY = page.getHeight() / 2;

float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));

float rotate = 20 * Math.abs(position);

if (position < -1) {

} else if (position < 0) {

page.setScaleX(scaleFactor);

page.setScaleY(scaleFactor);

page.setRotationY(rotate);

} else if (position >= 0 && position < 1) {

page.setScaleX(scaleFactor);

page.setScaleY(scaleFactor);

page.setRotationY(-rotate);

} else if (position >= 1) {

page.setScaleX(scaleFactor);

page.setScaleY(scaleFactor);

page.setRotationY(-rotate);

}

}

代码中有注释,如果想看更详细的介绍,在此贴出我博客的链接:我的博客 如果您觉得不错的话对你有帮助就点个赞收藏一下,谢谢!

android view 3d,Android 使用ViewPager打造3D画廊效果相关推荐

  1. Android开发学习之基于ViewPager实现Gallery画廊效果

    通过我们前面的学习,我们知道ViewPager是可以做出近乎完美的滑动体验,回顾整个Android,我们发现Gallery具备同样的特点,于是我们大胆地猜想,Gallery是否和ViewPager之间 ...

  2. android view禁用,Android 禁止ViewPager的自带滑动效果

    由于最近在做墨水屏的相关工作,ViewPager自带的滑动效果在墨水屏上表现的很不好,残影太重了.所以禁止自带的滑动效果,用接口来接管相关逻辑实现自处理. import android.content ...

  3. android view禁止右滑,ViewPager 禁止左右滑动完美解决

    package cn.fht.widget; import android.content.Context; import android.support.v4.view.ViewPager; imp ...

  4. android 自定义心电图,手把手教你打造一个心电图效果View Android自定义View

    大家好,看我像不像蘑菇-因为我在学校呆的发霉了. 思而不学则殆 丽丽说得对,我有奇怪的疑问,大都是思而不学造成的,在我书读不够的情况下想太多,大多等于白想 ,所以革命没成功,同志仍需努力. 好了废话不 ...

  5. android 自定义心电图,手把手教你打造一个心电图效果View Android自定义View(示例代码)...

    大家好,看我像不像蘑菇-因为我在学校呆的发霉了. 思而不学则殆 丽丽说得对,我有奇怪的疑问,大都是思而不学造成的,在我书读不够的情况下想太多,大多等于白想 ,所以革命没成功,同志仍需努力. 好了废话不 ...

  6. android view flipper,Android之ViewFlipper的简单使用

    大家都使用过ViewPager,但是ViewPager还有一个兄弟,那就是ViewFlipper.两者的名字非常相似,我们可以将ViewPager理解成"一页一页的视图",View ...

  7. Android view变形,android仿变形金刚效果实现MatchView

    what?变形金刚!先看效果吧! MainActivity.javapackage com.lee.matchview; import com.example.matchview.R; import ...

  8. Android view.settran,Android RecyclerView从入门到玩坏

    目录 前言 基础使用 分隔线 点击监听 搭配CardView 更丰富的条目 增删条目 快速添加视图 让RecyclerView支持复杂视图 最后前言 RecyclerView在Android界面开发当 ...

  9. html5 3d场景设计,H5打造3d场景不完全攻略(二): Amazing CSS3D

    原标题:H5打造3d场景不完全攻略(二): Amazing CSS3D 前言 对的,本文就是着重介绍如何使用CSS3中的3D变换打造出H5中的3D效果.灵感来源于造物节团队的3d引擎,因为使用方法比较 ...

  10. android view嵌套,Android RecyclerView嵌套RecyclerView点击事件

    RecyclerView嵌套RecyclerView点击事件遇到取值错乱的问题 其实问题根本就是咱们没有处理好被嵌套的那层recycleview的position 那么解决思路也很简单,想办法把被嵌套 ...

最新文章

  1. mysql教程联合索引_MySQL中的联合索引学习教程
  2. Btree(B-树)---C++
  3. bzoj1089: [SCOI2003]严格n元树
  4. boost::unknown_exception用法的测试程序
  5. hapRroxy 安装配置详解
  6. maven仓库启用国内云的方法,含完整配置文件
  7. mybatisplus page排序_MyBatisPlus分页的同时指定排序规则说明
  8. 正则表达式学习(一)
  9. 什么是南向接口和北向接口?
  10. 我的世界服务器物品图标闪,我的世界中国版用资源包修改闪烁标的方法分享
  11. eclipse中文包和控制台中文显示乱码
  12. journalctl命令详解
  13. 计算机组成原理指令存储器,《计算机组成原理》实验报告——指令存储、数据存储器...
  14. python网络爬虫从入门到实践第2版pdf-Python网络爬虫从入门到实践 第2版
  15. 岛屿数量JAVA_LeetCode刷题 463. Island Perimeter 岛屿的周长 Java
  16. 如何用HTML5写一个旋转立方体
  17. win10一行命令查看所有wifi密码
  18. 第一次写博客-C/C++软件开发工程师需要学习哪些东西?
  19. antd 全国省市级联框数据源
  20. Android的CalendarView控件使用及日期进行农历转换

热门文章

  1. 安信可推荐 | 安信可ESP-C3模组和ESP32-S3模组的软件和硬件对比区别
  2. 目标检测(二):OverFeat
  3. 清华大学朱小燕教授做客雷锋网沙龙,分享 NLP 和人工智能的那些事儿| AAAI 2017...
  4. java nio 捕获异常_java nio channel抛出ClosedByInterruptException的情况
  5. 西北工业大学 编译原理实验 minic文法 编译器前端 flex-bison实现 的 debug手记
  6. PSpice应用B-2
  7. Keil 5 C51与STM32
  8. linux+h264+cpu编码,Linux下使用MPV+SMPlayer播放HEVC H265编码视频
  9. 哔哩哔哩视频下载助手
  10. 计算机房管理制度通知,计算机房管理制度.doc