效果如下所示:

思路:

a.利用ViewPager自带的动画效果,略作修改,实现滑动覆盖翻页效果。

b.移动时加入阴影效果。

1.关键代码如下所示:

public class ReaderViewPager extends ViewPager {

public ReaderViewPager(Context context) {

this(context,null);

}

public ReaderViewPager(Context context,AttributeSet attrs) {

super(context,attrs);

setReadEffect();

setScrollerDuration();

}

private void setScrollerDuration() {

try {

Field field = ViewPager.class.getDeclaredField("mScroller");

field.setAccessible(true);

FixedSpeedScroller scroller = new FixedSpeedScroller(getContext(),new DecelerateInterpolator());

field.set(this,scroller);

scroller.setmDuration(300);

} catch (Exception e) {

Log.e("@","",e);

}

}

public void setReadEffect() {

setPageTransformer(true,new PageTransformer() {

private static final float MIN_SCALE = 0.75f;

@Override

public void transformPage(View view,float position) {

int pageWidth = view.getWidth();

int pageHeight =view.getHeight();

if (position < -1) { // [-Infinity,-1)

// This page is way off-screen to the left.

view.setAlpha(0);

} else if (position <= 0) { // [-1,0]

// Use the default slide transition when moving to the left page

view.setAlpha(1);

view.setTranslationX(0);

view.setScaleX(1);

view.setScaleY(1);

} else if (position <= 1) { // (0,1]

// Fade the page out.

// view.setAlpha(1 - position);

//

// // Counteract the default slide transition

view.setAlpha(1);

view.setTranslationX(pageWidth * -position);

//

// // Scale the page down (between MIN_SCALE and 1)

// float scaleFactor = MIN_SCALE

// + (1 - MIN_SCALE) * (1 - Math.abs(position));

// view.setScaleX(scaleFactor);

// view.setScaleY(scaleFactor);

} else { // (1,+Infinity]

// This page is way off-screen to the right.

view.setAlpha(0);

}

}

});

}

}

2.阴影效果添加(其实阴影是一张图片,本来是要在ReadViewPager内部添加阴影效果,但是不显示,貌似被ReadViewPage自己遮住了,就用笨办法实现了^_^):

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/readerViewPager"

android:layout_width="match_parent"

android:layout_height="match_parent" />

android:id="@+id/shadowView"

android:layout_width="20dp"

android:layout_height="match_parent"

android:background="@mipmap/shadow_right"/>

3.阴影随翻页而移动效果实现

readerViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override

public void onPageScrolled(int position,float positionOffset,int positionOffsetPixels) {

shadowView.setTranslationX(readerViewPager.getWidth()-positionOffsetPixels);

}

@Override

public void onPageSelected(int position) {

}

@Override

public void onPageScrollStateChanged(int state) {

}

});

4.OK,就是这么简单,快去做一个自己的驾考宝典吧 。。。

5.我自己写了一些简单的实现方法,有3个View的实现方式,还有其他使用开源控件实现的,这是地址,欢迎提意见哦

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

android做题imageview缩放,巧用ViewPager实现驾考宝典做题翻页效果相关推荐

  1. android 右侧点击翻页,巧用ViewPager实现驾考宝典做题翻页效果

    效果如下所示: 思路: a.利用ViewPager自带的动画效果,略作修改,实现滑动覆盖翻页效果. b.移动时加入阴影效果. 1.关键代码如下所示: public class ReaderViewPa ...

  2. Android开发:使用Viewpager模仿驾考宝典试卷答题界面

    目录 引言 效果图 一.activity页实现 二.activity对应的layout页面布局 三. ExamPaperNoAnswerDetailFragment页代码实现 四.ExamPaperN ...

  3. iOS中仿驾考宝典,做题目,回答问题自定义回答问题的高性能cell

    一.先上效果图.        二:介绍下主要功能. 2.1.   适用场景: 驾考宝典中:科一考试做题的时候,至于怎么展示题目的,本demo就有相似功能 金融项目:做过查征信的童鞋,会有回答问题的数 ...

  4. android 翻书动画效果怎么做,android ViewPager实现滑动翻页效果实例代码

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...

  5. Android项目实战(四):ViewPager切换动画(3.0版本以上有效果)

    原文:Android项目实战(四):ViewPager切换动画(3.0版本以上有效果) 学习内容来自"慕课网" 一般APP进去之后都会有几张图片来导航,这里就学习怎么在这张图片切换 ...

  6. android控件翻书效果,android ViewPager实现滑动翻页效果实例代码

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下:import android.content.Context;import androi ...

  7. Android翻页效果原理实现之翻页的尝试

    炮兵镇楼 在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成 ...

  8. ViewPager实现滑动翻页效果

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...

  9. ViewPager实现翻页效果导航点

    ViewPager实现翻页效果&导航点 代码下载:https://jww.lanzous.com/i37TMos71uf or: https://download.csdn.net/downl ...

最新文章

  1. 升级PHP到5.3.3的过程及注意事项
  2. 林肯焊接机器人的安装与接线_林肯焊接系统解读.ppt
  3. django 模板语言之 simple_tag 自定义模板
  4. select count
  5. HDU 4556 Stern-Brocot Tree
  6. aspx网页_http://jwxt.xmdh.com/home.aspx厦门东海职业技术学院教务网络管理系统
  7. SpringBoot_数据访问-整合MyBatis(二)-注解版MyBatis
  8. 表单提交enctype参数详解之:application/x-www-form-urlencode和multipart/form-data
  9. 微软官宣:史上最贵开发工具 75亿美金收购GitHub
  10. Linux+c+线程的属性,C ++中的多线程
  11. 在Python中执行JavaScript代码并进行数据交换
  12. 简单测试std::move
  13. python集合操作班级干部竞选演讲稿_【热门】竞选班干部演讲稿集合8篇
  14. 【零基础】一文读懂CPU(从二极管到超大规模集成电路)
  15. CSS3 的 calc()函数(为元素设置动态的属性值)【积累】
  16. python导入mysqldb_Python导入MySQLdb库
  17. 【优化】共轭函数(Conjugate Function)超简说明
  18. C#中TreeView树配图片
  19. django arya插件对数据库操作使用,reverse发娘解析url的使用
  20. .NET Core 获取GET,Post 参数

热门文章

  1. sihpostreboot关闭没有权限_安卓保护隐私,给APP一次性的权限
  2. redis快照持久化和aof日志持久化
  3. 图形用户界面和交互输入方法---图形用户界面的设计
  4. 我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
  5. 精典教程-推荐-2018-12-08(笔记)
  6. 越狱解决iphone4s外放无声音
  7. libvirt- Virsh 所有命令详单
  8. mocha.js 生成覆盖率报告
  9. 黄聪:电子商务关键数字优化(线上部分,上)
  10. Notepad++ 开启「切分窗口」同时检视、比对两份文件