Android 实现局部图片滑动指引效果

 更新时间:2017年01月23日 11:00:45   投稿:lqh  
这篇文章主要介绍了Android 实现局部图片滑动指引效果的相关资料,需要的朋友可以参考下

Android 实现局部图片滑动指引效果

而ViewPager的事件监听器代码如下:

  // 滑动页面更改事件监听器
  private class ImagePageChangeListener implements OnPageChangeListener {
    @Override 
    public void onPageScrollStateChanged(int arg0) { 
      // TODO Auto-generated method stub 
 
    } 
 
    @Override 
    public void onPageScrolled(int arg0, float arg1, int arg2) { 
      // TODO Auto-generated method stub 
 
    } 
 
    @Override 
    public void onPageSelected(int index) { 
      pageIndex = index;
      slideLayout.setPageIndex(index);
      tvSlideTitle.setText(parser.getSlideTitles()[index]);
      
      for (int i = 0; i < imageCircleViews.length; i++) { 
        imageCircleViews[index].setBackgroundResource(R.drawable.dot_selected);
        
        if (index != i) { 
          imageCircleViews[i].setBackgroundResource(R.drawable.dot_none); 
        } 
      }
    } 
  }
 

  事件监听器中主要在回调函数onPageSelected(int index)中变换标题和圆点图片。 

  由于滑动区域下方的内容是不变的,也就是不滑动的,正如在我在上面提到的,内容可能会超出屏幕的范围,所以我们需要使用ScrollView以便内容过多的时候显示滚动条。可能一部分朋友会想到,要显示滚动条我也知道使用ScrollView。我想在这里说的是,这里即有ViewPager控件,也有ScrollView,如果两个View单独使用不会有什么问题。然而不幸的是,两个一结合使用就出现了问题。什么问题呢?就是在滑动图片时出现反弹的现象,就是在滑动时很难滑动,我滑动时感觉很吃力,而且图片就是滑动不过去,这个就是两个View之间的冲突,因为两个View都是滑动的View,都会计算相应的位置和判断相应的距离。 

  我们如何来解决这个冲突呢?这里我们需要重写ScrollView的onInterceptTouchEvent()回调函数。需要在程序里新加一个ScrollViewExtend类并继承自ScrollView,下面是其代码:

package com.image.indicator.control;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ScrollView;

/**
 * 能够兼容ViewPager的ScrollView
 * @Description: 解决了ViewPager在ScrollView中的滑动反弹问题

 * @File: ViewPagerCompatScrollView.java

 * @Package com.image.indicator.control

 * @Author Hanyonglu

 * @Date 2012-6-18 下午01:34:50

 * @Version V1.0
 */
public class ScrollViewExtend extends ScrollView {
  // 滑动距离及坐标
  private float xDistance, yDistance, xLast, yLast;

  public ScrollViewExtend(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
      case MotionEvent.ACTION_DOWN:
        xDistance = yDistance = 0f;
        xLast = ev.getX();
        yLast = ev.getY();
        break;
      case MotionEvent.ACTION_MOVE:
        final float curX = ev.getX();
        final float curY = ev.getY();
        
        xDistance += Math.abs(curX - xLast);
        yDistance += Math.abs(curY - yLast);
        xLast = curX;
        yLast = curY;
        
        if(xDistance > yDistance){
          return false;
        } 
    }

    return super.onInterceptTouchEvent(ev);
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对 本站的支持!

相关文章

  • Android用tabhost实现 界面切换,每个界面为一个独立的activity操作

    Android用tabhost实现 界面切换,每个界面为一个独立的activity操作

    这篇文章主要介绍了Android用tabhost实现 界面切换,每个界面为一个独立的activity操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Android ContentResolver使用说明

    Android ContentResolver使用说明

    这篇文章主要介绍了Android ContentResolver使用说明,需要的朋友可以参考下
    2016-01-01
  • 说说Android的UI刷新机制的实现

    说说Android的UI刷新机制的实现

    这篇文章主要介绍了说说Android的UI刷新机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Android DrawLayout结合ListView用法实例

    Android DrawLayout结合ListView用法实例

    这篇文章主要介绍了Android DrawLayout结合ListView用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Android触摸事件传递机制

    Android触摸事件传递机制

    这篇文章主要介绍了Android触摸事件传递机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • OkHttp3中默认不保持Cookie的解决方法

    OkHttp3中默认不保持Cookie的解决方法

    这篇文章主要给大家介绍了关于OkHttp3中默认不保持Cookie的解决方法,文中先对OKhttp3中的cookies进行了简单的介绍,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • 如何利用Flutter实现酷狗流畅Tabbar效果

    如何利用Flutter实现酷狗流畅Tabbar效果

    这篇文章主要给大家介绍了关于如何利用Flutter实现酷狗流畅Tabbar效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Android仿微信滑动退出Activity

    Android仿微信滑动退出Activity

    这篇文章主要介绍了Android仿微信滑动退出Activity的相关资料,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12
  • Android开发腾讯验证码遇到的坑

    Android开发腾讯验证码遇到的坑

    这篇文章主要介绍了Android开发腾讯验证码遇到的坑,需要的朋友可以参考下
    2017-12-12
  • Android实现订单倒计时功能

    Android实现订单倒计时功能

    这篇文章主要为大家详细介绍了Android实现订单倒计时的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论