Android学习笔记 3.1View的基础知识
来源:互联网 发布:打卡机数据导不出 编辑:程序博客网 时间:2024/06/05 08:55
View是Android中所有控件的基类。
View的位置主要由它的四个顶点来决定,分别对应四个属性top,left,right,bottom。这些坐标都是相对于View的父容器来说的。
在Android中,x轴和y轴的正方向是右和下。
View宽高的关系:width=right-leftheight=bottom-top
从android3.0开始,新加入了x,y,translationX,translationY四个参数,分别为左上角的坐标和View左上角相对于父容器的偏移量。
MotionEvent
典型事件类型:ACTION_DOWN手指刚接触屏幕 ACTION_UP手指离开屏幕一瞬间
ACTION_MOVE手指在屏幕上移动
getX/getY返回的是相对于当前View左上角的x和y坐标
getRawX/getRawY返回的是相对于手机屏幕左上角的x和y坐标
TouchSlop
它是系统所能识别出的被认为是滑动的最小距离
获取方法:
ViewConfiguration.get(getContext()).getScaledTouchSlop()
VelocityTracker
用于追踪手指在滑动过程中的速度这个速度是指一段时间内手指所划过的像素数,速度可以是负数。
首先在View的onTouchEvent中追踪单击事件的速度
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
- Android学习笔记 3.1View的基础知识
- Android View学习笔记(一):View基础知识
- 《Android开发艺术探索》之学习笔记(三)View的基础知识
- Android学习笔记--基础知识
- 自定义VIEW(学习笔记一)-基础知识
- android学习笔记-自定义View的属性
- Android学习笔记 3.2View的滑动
- Android Service学习笔记--基础知识
- 【Android学习笔记】自定义View
- Android自定义view学习笔记
- Android学习笔记-自定义view
- 【Android学习笔记】Android中View的事件分发机制
- Android自定义控件基础知识----View的生命周期
- Android-View事件体系之View的基础知识
- android view 的学习
- android view的学习
- android 自定义view基础知识
- android 自定义view基础知识
- CSS应用:阴影和轮廓
- Java,String与InputStream相互转化
- 自定义导航按钮UIBarButtonItem
- SSH过程中关闭对主机HostKey值的验证
- iOS Cocoapods安装
- Android学习笔记 3.1View的基础知识
- 城市中的原始人(三):社交恐惧
- leetcode 196. Delete Duplicate Emails delete
- 链表实现约瑟夫环
- 救援 MBR 內的開機管理程式與設定多重開機選單
- opencv detectMultiScale函数应用说明(转载)
- 工具类不应该有公有的构造函数
- Python中if __name__ == "__main__"是什么作用
- 1014