码迷,mamicode.com
首页 > 其他好文 > 详细

View的滑动

时间:2016-04-13 18:47:52      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

一、View的位置参数(都是相对于父容器的位置)

1.View的位置由左上角点、右下角点来确定的。分别对应(左上的X—getLeft,左上的Y—getTop,右下的X—getRight,右下的Y—getBottom)。

2.View的偏移量(translation):表示左上角相对于父容器的偏移量(当前位置与移动后的位置之差叫做偏移量),默认为0。(进过测试只能通过setTranslation改变Translation,补间动画animation.xml无效)通过getTransaltion获取X,Y

3.View的getX(),getY()(都是左上角的点):X = left + translationX;就是左上角的X坐标加上X的偏移量,Y = top + translationY;(就是左上角Y的坐标,加上Y的偏移量)

4.View的getScaleX(),getScaleY():View的内容的左上角的坐标。

解释:

技术分享

二、介绍VelocityTracker、GestureDetector、Scroller

1.VelocityTrancker

作用:速度追踪,用于追踪手指在滑动过程中的速度(包括水平和竖直方向速度)

使用:①、将event事件添加至Velocity对象中   ②、设置时间:指一段时间划过的像素数  ③、获取X,Y方向滑过的像素数(从左向右为正,从上向下为正)

实例:

技术分享
public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";

    private VelocityTracker mVelocityTracker = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取Velocity
        mVelocityTracker = VelocityTracker.obtain();
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //将事件对象由该对象掌管
        mVelocityTracker.addMovement(event);
        switch (event.getAction()){
            case MotionEvent.ACTION_MOVE:
                //设置时间间隔:速度指的是一段时间内手指划过的像素数
                mVelocityTracker.computeCurrentVelocity(1000);
                //打印速度
                Log.d(TAG,"1秒内滑动X像素数"+mVelocityTracker.getXVelocity()+"  Y像素数"+mVelocityTracker.getYVelocity());
                break;
            default:
                break;
        }
        return super.onTouchEvent(event);
    }
}
MainActivity

注意:当调用getXVelocity()方法的时候,就会返回平均速度。(假设我设置1喵,就是说不是等一秒过后才会,返回getXVelocioty(),而是当你调用getXVelocity()利用数学计算出每秒的速度)。

View的滑动

标签:

原文地址:http://www.cnblogs.com/rookiechen/p/5387980.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!