Android学习笔记 3.1View的基础知识

来源:互联网 发布:打卡机数据导不出 编辑:程序博客网 时间:2024/06/05 08:55

ViewAndroid中所有控件的基类。

 

View的位置主要由它的四个顶点来决定,分别对应四个属性topleftrightbottom。这些坐标都是相对于View的父容器来说的。

Android中,x轴和y轴的正方向是右和下。

View宽高的关系:width=right-leftheight=bottom-top

android3.0开始,新加入了xytranslationXtranslationY四个参数,分别为左上角的坐标和View左上角相对于父容器的偏移量。

 

MotionEvent

典型事件类型:ACTION_DOWN手指刚接触屏幕 ACTION_UP手指离开屏幕一瞬间

ACTION_MOVE手指在屏幕上移动

getX/getY返回的是相对于当前View左上角的xy坐标

getRawX/getRawY返回的是相对于手机屏幕左上角的xy坐标

TouchSlop

它是系统所能识别出的被认为是滑动的最小距离

获取方法:

ViewConfiguration.get(getContext()).getScaledTouchSlop()

VelocityTracker

用于追踪手指在滑动过程中的速度这个速度是指一段时间内手指所划过的像素数,速度可以是负数。

首先在ViewonTouchEvent中追踪单击事件的速度

VelocityTracker velocityTracker= VelocityTracker.obtain();velocityTracker.addMovement(event);

获取滑动速度的方法

velocityTracker.computeCurrentVelocity(1000);int xVelocity =(int) velocityTracker.getXVelocity();int yVelocity =(int) velocityTracker.getYVelocity();

不需要使用时

velocityTracker.clear();velocityTracker.recycle();

GestureDetector

手势检测,用于辅助检测用户的单击、滑动、长按、双击等行为。

 

Scroller

弹性滑动对象,用于实现View对象的弹性滑动

 

Scroller scroller;private void soomthScrollTo(int destX,int destY){int scrollX=getScrollX();int scrollY=getScrollY();int deltaX=destX-scrollX;int deltaY=destY-scrollY;scroller.startScroll(scrollX,scrollY,deltaX,deltaY,1000);invalidate();}public void computeScroll(){if(scroller.computeScrollOffset()){scrollTo(scroller.getCurrX(),scroller.getCurrY());postInvalidate();}}

0 0
原创粉丝点击