android做题imageview缩放,巧用ViewPager实现驾考宝典做题翻页效果
效果如下所示:
思路:
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实现驾考宝典做题翻页效果相关推荐
- android 右侧点击翻页,巧用ViewPager实现驾考宝典做题翻页效果
效果如下所示: 思路: a.利用ViewPager自带的动画效果,略作修改,实现滑动覆盖翻页效果. b.移动时加入阴影效果. 1.关键代码如下所示: public class ReaderViewPa ...
- Android开发:使用Viewpager模仿驾考宝典试卷答题界面
目录 引言 效果图 一.activity页实现 二.activity对应的layout页面布局 三. ExamPaperNoAnswerDetailFragment页代码实现 四.ExamPaperN ...
- iOS中仿驾考宝典,做题目,回答问题自定义回答问题的高性能cell
一.先上效果图. 二:介绍下主要功能. 2.1. 适用场景: 驾考宝典中:科一考试做题的时候,至于怎么展示题目的,本demo就有相似功能 金融项目:做过查征信的童鞋,会有回答问题的数 ...
- android 翻书动画效果怎么做,android ViewPager实现滑动翻页效果实例代码
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...
- Android项目实战(四):ViewPager切换动画(3.0版本以上有效果)
原文:Android项目实战(四):ViewPager切换动画(3.0版本以上有效果) 学习内容来自"慕课网" 一般APP进去之后都会有几张图片来导航,这里就学习怎么在这张图片切换 ...
- android控件翻书效果,android ViewPager实现滑动翻页效果实例代码
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下:import android.content.Context;import androi ...
- Android翻页效果原理实现之翻页的尝试
炮兵镇楼 在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成 ...
- ViewPager实现滑动翻页效果
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...
- ViewPager实现翻页效果导航点
ViewPager实现翻页效果&导航点 代码下载:https://jww.lanzous.com/i37TMos71uf or: https://download.csdn.net/downl ...
最新文章
- 升级PHP到5.3.3的过程及注意事项
- 林肯焊接机器人的安装与接线_林肯焊接系统解读.ppt
- django 模板语言之 simple_tag 自定义模板
- select count
- HDU 4556 Stern-Brocot Tree
- aspx网页_http://jwxt.xmdh.com/home.aspx厦门东海职业技术学院教务网络管理系统
- SpringBoot_数据访问-整合MyBatis(二)-注解版MyBatis
- 表单提交enctype参数详解之:application/x-www-form-urlencode和multipart/form-data
- 微软官宣:史上最贵开发工具 75亿美金收购GitHub
- Linux+c+线程的属性,C ++中的多线程
- 在Python中执行JavaScript代码并进行数据交换
- 简单测试std::move
- python集合操作班级干部竞选演讲稿_【热门】竞选班干部演讲稿集合8篇
- 【零基础】一文读懂CPU(从二极管到超大规模集成电路)
- CSS3 的 calc()函数(为元素设置动态的属性值)【积累】
- python导入mysqldb_Python导入MySQLdb库
- 【优化】共轭函数(Conjugate Function)超简说明
- C#中TreeView树配图片
- django arya插件对数据库操作使用,reverse发娘解析url的使用
- .NET Core 获取GET,Post 参数