android 改变ViewPager切换页面时的速度

声明:引自http://zhidao.baidu.com/link?url=9YCi4uGUki-xgV6d8_ZN5N1Jq9-eRw4efaiwvC6_aehw62IoskmrrS1ew1Cm11UmTO4UNMoaZEN6DI1HUedTLJA8Kt1-v0lWMCW_Jnd_wHy       点击打开链接

原生的ViewPager页面切换速度较快,但是又没有方法设置切换速度,所以只能自定义一个滚动器,利用反射改变切换速度,代码如下:


import java.lang.reflect.Field;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.view.animation.Interpolator;
import android.widget.Scroller;

/**
 * ViewPager 滚动速度设置
 * 
 * @author lyy
 *
 */
public class ViewPagerScroller extends Scroller {
	private int mScrollDuration = 2000; // 滑动速度

	/**
	 * 设置速度速度
	 * 
	 * @param duration
	 */
	public void setScrollDuration(int duration) {
		this.mScrollDuration = duration;
	}

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

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

	public ViewPagerScroller(Context context, Interpolator interpolator,
			boolean flywheel) {
		super(context, interpolator, flywheel);
	}

	@Override
	public void startScroll(int startX, int startY, int dx, int dy, int duration) {
		super.startScroll(startX, startY, dx, dy, mScrollDuration);
	}

	@Override
	public void startScroll(int startX, int startY, int dx, int dy) {
		super.startScroll(startX, startY, dx, dy, mScrollDuration);
	}

	public void initViewPagerScroll(ViewPager viewPager) {
		try {
			Field mScroller = ViewPager.class.getDeclaredField("mScroller");
			mScroller.setAccessible(true);
			mScroller.set(viewPager, this);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

使用:


  ViewPagerScroller pagerScroller = new ViewPagerScroller(getActivity());
pagerScroller.setScrollDuration(1000);//设置时间,时间越长,速度越慢
pagerScroller.initViewPagerScroll(mViewPager);




  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android设备上,实现上下滑动切换视频可以通过以下步骤完成: 1. 首先,你需要创建一个包含视频播放的页面或者活动。可以使用VideoView或ExoPlayer等多媒体库来实现视频播放功能。 2. 在该页面或者活动中,你需要设置一个手势监听器,以便捕捉用户的上下滑动手势。可以使用GestureDetector来实现手势监听功能。 3. 在手势监听器中,你可以根据用户的上下滑动方向来切换视频。比如,当用户向上滑动,你可以切换到下一个视频,在你的视频播放列表中,你可以用一个变量来记录当前正在播放的视频索引,然后在手势监听器中处理上下滑动的逻辑,切换到相应的视频。 4. 另外,你还可以在切换视频的同更新相关的视频信息,比如视频标题、作者等。这可以通过更改相关控件的内容来实现。 5. 最后,为了提升用户体验,你可以添加一些动画效果,比如淡入淡出动画或滑动动画,在用户切换视频使用,使切换过程更加平滑和自然。 总之,通过设置手势监听器并根据用户上下滑动的意图来切换视频,我们可以在Android设备上实现上下滑动切换视频的功能。同,你也可以根据具体需求自定义其他的切换方式和效果。 ### 回答2: 在Android上实现上下滑动切换视频的功能可以通过以下步骤实现。 首先,需要一个用于展示视频的视图组件,可以选择使用VideoView或ExoPlayer等。 然后,在布局文件中嵌入该视图组件,并为其设置一个唯一的ID。 接下来,在相关的Java或Kotlin代码中,通过findViewById方法获取到该视图组件的实例。 在获取到实例之后,需要为该组件添加一个触摸监听器,以便监听用户的上下滑动手势。 在触摸监听器的onTouch方法中,可以通过获取MotionEvent对象来判断用户的手势动作。如果用户进行了向上滑动的动作,则切换到下一个视频;如果用户进行了向下滑动的动作,则切换到上一个视频。 要实现视频切换的功能,可以使用一个视频列表来存储所有视频的URL或文件路径。在切换视频,通过修改VideoView或ExoPlayer组件的视频源来切换到下一个或上一个视频。 另外,为了确保用户在滑动过程中可以流畅地看到视频内容,可以考虑使用预加载的方式加载前后的视频。 最后,测试应用程序,确保上下滑动手势可以正确切换视频,并且视频播放的过程中没有明显的卡顿或延迟现象。 以上是一种实现上下滑动切换视频的方式,具体的实现方式还需要根据具体的应用场景和需求进行调整和优化。 ### 回答3: 在Android上,可以使用RecyclerViewViewPager来实现上下滑动切换视频的功能。 首先,我们需要创建一个RecyclerView,并设置其布局管理器为垂直方向。接下来,我们需要自定义一个ViewHolder和一个适配器,用于加载视频和绑定到RecyclerView上。 在RecyclerView的适配器中,我们可以使用ViewPager作为每个子项的容器,用于展示视频。在ViewPager的适配器中,我们可以根据视频数量创建相应数量的Fragment,并在每个Fragment中展示对应的视频。 在实现切换的过程中,我们可以使用GestureDetector来监听用户的上下滑动手势。当用户向上滑动,我们可以通过ViewPager的setCurrentItem方法将当前的视频切换到下一个视频。当用户向下滑动,我们可以将当前的视频切换到上一个视频。 另外,我们还可以通过监听ViewPager的滑动事件,来实更新当前视频的进度和展示相关的控制按钮,如播放/暂停、全屏等。 最后,我们还可以在RecyclerView的适配器中实现点击事件,当用户点击某个视频,我们可以通过ViewPager的setCurrentItem方法将当前的视频切换到被点击的视频,并进行相应的处理。 综上所述,通过使用RecyclerViewViewPager,以及监听用户手势和ViewPager的滑动事件,我们可以在Android上实现上下滑动切换视频的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值