Android 自定义Viewpager滑动速度

ViewPager禁止滑动和修改滑动速度 1. 简介 2. ViewPager 禁止滑动 3. ViewPager 的scroller 4. 参考 阅读详情

由于Viewpager的滑动速度是固定的,所以很蛋疼。看了老外的文章可以利用反射机制,修改Viewpager的滑动速度。下面是代码实现:

 

需要新建个类FixedSpeedScoller继承自scroller类

import android.content.Context;
import android.view.animation.Interpolator;
import android.widget.Scroller;

/**
 * FixedSpeedScroller for controlling sliding animation speed. It uses the java
 * reflection mechanism.
 * 
 * @version 1.00 2014.1.6
 * @author Huang.xin gkx100120
 * 
 */
public class FixedSpeedScroller extends Scroller {

    private int mDuration = 1500; // default time is 1500ms

    public FixedSpeedScroller(Context context) {
	super(context);
    }

    public FixedSpeedScroller(Context context, Interpolator interpolator) {
	super(context, interpolator);
    }

    @Override
    public void startScroll(int startX, int startY, int dx, int dy, int duration) {
	// Ignore received duration, use fixed one instead
	super.startScroll(startX, startY, dx, dy, mDuration);
    }

    @Override
    public void startScroll(int startX, int startY, int dx, int dy) {
	// Ignore received duration, use fixed one instead
	super.startScroll(startX, startY, dx, dy, mDuration);
    }

    /**
     * set animation time
     * 
     * @param time
     */
    public void setmDuration(int time) {
	mDuration = time;
    }

    /**
     * get current animation time
     * 
     * @return
     */
    public int getmDuration() {
	return mDuration;
    }
}


然后需要在初始化Viewpager的地方,加入以下代码:

 FixedSpeedScroller mScroller = null;
 private void controlViewPagerSpeed() {
	try {
	    Field mField;

	    mField = ViewPager.class.getDeclaredField("mScroller");
	    mField.setAccessible(true);

	    mScroller = new FixedSpeedScroller(
		    mMainHolder.main_viewpager.getContext(),
		    new AccelerateInterpolator());
	    mScroller.setmDuration(2000); // 2000ms
	    mField.set(mMainHolder.main_viewpager, mScroller);
	} catch (Exception e) {
	    e.printStackTrace();
	}
    }

setmDuration 可以设定想要的时间,这个时间就是滑动的时间。注意上面的mMainHolder.main_viewpager参数,这个是我的viewpager对象,如果大家要用的话,需要修改成自己的viewpager对象。

Android——UI篇:ViewPager轮播图控制滑动速度 Android中ViewPager的api中,并没有对外暴露方法来设置ViewPager的滑动速度,通过查看源码发现,我们可以利用反射和自定义类的方式来控制viewPager的滑动速度,代码如下: /** * ViewPager 滚动速度设置 * * @author lyy * */ public class ViewPagerScroller extends Scro 阅读详情

相关推荐

掌握Android ViewPage左右滑动技巧

本文还有配套的精品资源,点击获取 简介:本文深入探讨Android中的ViewPage左右滑动功能,介绍其原理及实现步骤。ViewPage控件允许用户通过水平滑动在多个页面间切换,通常与PagerAdapter结合使用。文章指导如何通过XML布局添加ViewPager,创建自定义PagerAdapter,设置适配器,监听滑动事件,并进行个性化设置,如过度动画。结合TabLa...

weixin_42509507的博客 1576

Android反射修改view,Android 修改viewpage滑动速度的实现代码

1、自定义Scrollerpublic class ViewPageFixedSpeedScroller extends Scroller {private int mDuration = 300;public ViewPageFixedSpeedScroller(Context context) {super(context);// TODO Auto-generated constructor...

weixin_30150003的博客 215

自定义ViewPager滑动灵敏度的实现与优化

ViewPager是Android开发中常用的组件,它支持用户在页面间水平滑动切换。默认情况下,ViewPager提供了基本的滑动和切换页面的功能。然而,为了满足特定的业务需求,开发者可能需要深入了解其内部机制,以便进行自定义的滑动行为。分析ViewPager的默认滑动行为,我们需要关注以下几个方面:手势识别:ViewPager如何处理用户的触摸事件,区分滑动与点击。页面切换逻辑:ViewPager如何确定何时切换到下一个页面,以及何时停止滑动。动画效果。

weixin_42527589的博客 694

android viewPager滑动速度设置

ViewPager 滑动速度设置,并实现点击按钮滑动        使用过ViewPager的童鞋,都会感觉到设置界面滑动挺简单的。但是有时候却满足不了UI设计的要求。      在用这个ViewPager的时候我遇到两个问题,不知道你们遇到没有。这里做个笔记,总结一下:      第一个问题是,ViewPager在我们滑动放手后,速度和动画的变化率是固定的。    

成长的味道 4156

实现Android竖向ViewPager滑动效果的完整指南

本文还有配套的精品资源,点击获取 简介:在Android应用开发中, ViewPager 用于实现页面的水平切换,但不支持竖向滑动。为满足特定设计需求,如竖向引导界面,开发者需通过自定义或第三方库来实现 ViewPager 的竖向滑动功能。本文提供一个示例,介绍如何通过继承 ViewPager 并重写其触摸事件处理方法来改变滑动方向...

weixin_33245447的博客 1298

ViewPager 滑动速度设置,并实现点击按钮滑动!

ViewPager 滑动速度设置,并实现点击按钮滑动!

Android ViewPager轮播图自动循环滑动速度修改(不影响手动滑动速度)

设置ViewPager的滑动速度,自动循环时让它在1~2秒切换完,手动滑动时会迅速切换完成

qq_40697553的博客 2935

Android 修改viewpage滑动速度的实现代码

由于Viewpager的滑动速度是固定的,所以很头疼,下面小编通过实例代码给大家分享android 修改viewpage滑动速度的方法,需要的朋友参考下吧

FixedSpeedScroller

package com.cmb.zh.common.viewsupport; import android.content.Context; import android.view.animation.Interpolator; import android.widget.Scroller; //viewpage切换速度调整 public class FixedSpeed

u010706236的专栏 1015

阻容降压 vs 开关电源:5V小功率供电方案成本与安全深度对比

本文深度对比了阻容降压电路与开关电源在5V小功率供电方案中的核心差异。重点剖析了二者在成本、体积、效率、温升及安全隔离等方面的优劣,并结合智能温控器、LED驱动等典型应用场景,为硬件工程师提供了清晰的选型决策框架,帮助在成本与安全之间做出最佳权衡。

weixin_29310631的博客 702

工业自动化中气动夹爪选型、调试与维护全流程实战解析

在工业自动化领域,气动执行元件是实现精准抓取与搬运的基础。其工作原理是通过压缩空气驱动气缸,转化为直线或旋转运动,从而控制夹爪的开合。这类技术因其结构简单、响应快速、成本低廉及维护方便,在自动化产线中具有极高的技术价值,是实现高效、可靠物料搬运的核心单元。其典型应用场景涵盖电子装配、汽车制造、食品包装等行业的上下料、分拣与定位工序。本文以工业自动化中常见的二指平行气动夹爪(常被工程师代号化为“Gripper-A”)为例,深入剖析其从硬件选型、气动系统集成到程序逻辑联锁的完整工程实践。内容聚焦于夹持力计算中惯

weixin_42629671的博客 366

Android 自定义ViewPager的滑动速度

android当中的Viewpager用作自动滑动的轮播效果时,其滑动速度要比ios快好多,不是很美观。其实v4包里的viewpager已经预留了速度接口,但是并没有对外开放,而写自定义viewpager经笔者测试很不现实,于是只能拿viewpager里面的私有成员Scroller 来开刀。 首先复写scroller这个类的一些重要方法 public class FixedSpeedScrol

lvshaorong的博客 1156

S4HANA - Cost Elements成本要素

SAP这里面的配置逻辑很像,就是先建一个对象,然后不停给这个对象附加一些属性,给一个账户附加编号范围,附加账户组。所有模块的维度都在这个表里,看下图的GL,CO,COPA,AA,ML的都在ACDOCA里。要把这5个类型和六大要素对应,先得把六大要素和账户类型对应下(以下是个人理解,不知道对错):当然那个C是新来的,我觉得放在资产下面也行,就不画图了。S4的嵌入式分析是在业务逻辑都整套嵌入的情况下,预开发了数据模型,所以它能提供的就不仅是原始数据了,它能提供的是包含所有相关联的上下文的信息数据。

weixin_45689053的博客 2394

Android ViewPager动态向前向后加载数据,自定义viewPager滑动速度

来自: http://hiqianjin.com/blog/474

#ifndefine maxwit #define maxwit...#endif 3853

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头,才能利用专业设备,里面找到,镜像,把内容数据恢复出来。 1.说一下经历,借用的别人移动硬盘,去帮别人维修,拷数据出来,别人的文件,数据比较多,且复杂,而且是在PE系统,接口什么的是2.0,没有很好的思考就全选复制拷贝了; 2,拷贝的过程,极其慢,文件多,且文件有损坏,移动硬盘一直处于通电的状态,大概从下午,两点多开始100多G的数据,一直卡住,到,晚上7 。8点拷完还是没拷完。打开的时候就已经,就一直

weixin_43766920的博客 4301

NOAA气象数据下载攻略

各方搜寻气象数据下载途径,发现网上最多的就是从NOAA下载,但是中途有尝试过很多次都没有下载到,每次都是显示不可用,今天终于下载成功了,特此记录。 首先我是从这个网址进入的:National Centers for Environmental Information (NCEI) formerly known as National Climatic Data Center (NCDC) | NCEI offers access to the most significant archives of oc

lianqian66的博客 3万+

Viewpager切换滑动速度的修改

默认情况下,viewpager的setcurrentItem()方法的切换时间是写死的 我们要想修改他的滑动时间,需要引入新的类继承Scroller 具体代码如下: import android.content.Context; import android.view.animation.Interpolator; import android.widget.Scroller;

lanbojini1209的专栏 462

【GlobalMapper精品教程】072:GlobalmapperV25中文版下载地址及安装教程

GlobalmapperV25中文版下载地址及安装教程安装包位于专栏完整数据包中,请订阅后从优快云私信查收!最新GlobalMapper中文版入门实战实验教程,图文并茂,实用性强,内容包括:GM基础操作、数据处理及地形图制作、航测内业数据处理、点云处理、地形分析、空间分析、数据库建库入库等。配套完整案例数据,持续同步更新!订阅专栏后,从私信查收中文安装包永久版(中文23.0+24.0)及配套实验数据包。

智慧空间实验室 4733

viewpager广告位滑动速度控制

(控制广告位滑动速度实现) 1.将viewoager放到自定义的Scroller中 try { Field mScroller; mScroller = ViewPager.class.getDeclaredField("mScroller"); mScroller.setAccessible(true); FixedSpeedScroller scroller = new Fix

u014074418的专栏 518

我的世界进阶模组开发教程——制作机械动力附属模组

摘要: Create是Minecraft的机械动力模组,其代码结构分为多个关键模块: 数据生成系统:通过CreateRecipeProvider基类实现配方自动化生成,支持多步骤序列化装配配方(SequencedAssemblyRecipeGen),采用建造者模式链式调用; 注册管理:CreateRegistrate扩展了Registrate库,统一管理方块、流体、实体等注册,集成标签页分类和工具提示定制; 伤害系统:DamageTypeTagGen为机械伤害(如钻头、风扇火焰)定义原版兼容的标签; 客户端

qq_24992377的博客 2083

大模型新闻摘要生成质量评估工具

大模型新闻摘要生成质量评估工具 关键词:大模型、新闻摘要、质量评估、自然语言处理、算法 摘要:本文将探讨大模型新闻摘要生成质量评估工具的设计与应用。首先介绍大模型新闻摘要生成的背景和问题,然后深入分析质量评估的难点和重要性,接着介绍大模型的

AI天才研究院 828

设置ViewPager的滑动速度

用按钮的点击事件切换ViewPager到某一个子页面,我们一般使用 mViewPager.setCurrentItem(positon),这时你会发现ViewPager快速的闪到你所设置的页面,如果我们要控制这个切换过程有个过渡效果,该怎么办呢   自定义一个Scroller类,控制ViewPager的滑动速度   public classSpeedScroller extends

大漠-孤烟 888

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android之ViewPager修改滑动速度

在android中,使用过viewpager的人都清楚,我们如果使用viewpager进行滑动时,如果通过手指滑动来进行的话,可以根据手指滑动的距离来实现,但是如果通过setCurrentItem函数来实现的话,则会发现没有过度动画的效果,而是直接闪过去的,那么在有时我们就会遇到一个需求,比如说我们想要通过使用setCurrentItem函数来进行viewpager的滑动,并且需要有过度...

a14780429533的博客 364

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

设置ViewPager滑动切换速度

一、自定义一个Scroll类,用于控制ViewPager滑动速度: public class FixedSpeedScroller extends Scroller { private int mDuration = 1000; public FixedSpeedScroller(Context context) { super(context); } public F

wb1211的博客 1069

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

设置viewpager在使用setCurrentItem的滑动速度

在使用ViewPager的过程中,有需要直接跳转到某一个页面的情况,这个时候就需要用到ViewPager的setCurrentItem方法了,它的意思是跳转到ViewPager的指定页面,但在使用这个方法的时候有个问题,跳转的时候有滑动效果,当需要从当前页面跳转到其它页面时,跳转页面跨度过大、或者ViewPager每个页面的视觉效果相差较大时,通过这种方式实现ViewPager跳转显得很不美观,怎

BlochCoding的博客 4146

Viewpager设置轮播滑动速度后与手动滑动卡顿解决

1//设置适配器之后 try { //不影响向手动滑动 Field scrollerField = ViewPager.class.getDeclaredField("mScroller"); scrollerField.setAccessible(true); Field interpolator = ViewPager.class.getDeclaredField(...

qq_37353043的博客 801
上一篇: Android 实现首次开机启动wizardsetup程序
下一篇: android 编译模块及打包system.img命令
T-Quake
博客等级 码龄20年 103粉丝 46原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值