Android项目中实现滑动功能的方法有哪些-创新互联

本篇文章给大家分享的是有关Android项目中实现滑动功能的方法有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

在钟祥等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、成都网站设计 网站设计制作定制开发,公司网站建设,企业网站建设,品牌网站制作,营销型网站建设,成都外贸网站建设公司,钟祥网站建设费用合理。

一、Android坐标体系

在讲解滑动之前,我们有必要简单提一下Android的坐标体系,因为滑动的实质就是坐标的不断改变,所以我们先来了解一下Android坐标系和视图坐标系两个概念。直接放上两张图片吧,一目了然。

Android项目中实现滑动功能的方法有哪些

Android坐标系

Android项目中实现滑动功能的方法有哪些

视图坐标系

从上面的两张图可以看出,Android坐标系的坐标原点位于屏幕的左上角,而视图坐标系的原点位于父视图的左上角,既然提供了两种不同的坐标系,那么我们如何来获取坐标呢,Android已经给我们提供了一些方法用于获取这些坐标,看下面的图便一目了然。

Android项目中实现滑动功能的方法有哪些

Android获取坐标的各种方法

二、layout方法

在View进行绘制时,是调用onLayout()方法来确定View的位置的,同样我们也可以调用layout()方法来传入我们滑动后的坐标便可以实现View的滑动,当然坐标的获取我们可以在触控事件中进行获取,下面我们做一个View随手指进行滑动的小例子来进行说明。

public class DragView extends View {
  private int mLastX;
  private int mLastY;
  public DragView(Context context) {
    this(context, null);
  }

  public DragView(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
  }

  public DragView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    int x = (int) event.getX();
    int y = (int) event.getY();
    int lastX = 0, lastY = 0;
    switch (event.getAction()){
      case MotionEvent.ACTION_DOWN:
        mLastX = x;
        mLastY = y;
        break;
      case MotionEvent.ACTION_MOVE:
        int offsetX = x - mLastX;
        int offsetY = y - mLastY;
        layout(getLeft() + offsetX, getTop() + offsetY,
            getRight() + offsetX, getBottom() + offsetY);
        break;
    }
    return true;
  }
}

文章名称:Android项目中实现滑动功能的方法有哪些-创新互联
分享地址:http://myzitong.com/article/dhophi.html