View体系

Android中有两种坐标系,分别为Android坐标系和视图坐标系
  • Android坐标系:屏幕的左上角的顶点作为Android坐标系的原点,这个原点向右是X轴正方向,原点向下是Y轴正方向
    在这里插入图片描述
  • 视图坐标系:
    getHeight():获取View自身高度
    getWidth():获取View自身宽度
    getTop():获取View自身顶边到其父布局顶边的距离
    getLeft():获取View自身左边到其父布局左边的距离
    getRight():获取View自身右边到其父布局左边的距离
    getBottom():获取View自身底边到其父布局顶边的距离
    getX():获取点击事件距离控件左边的距离,即视图坐标
    getY():获取点击事件距离控件顶边的距离,即视图坐标
    getRawX():获取点击事件距离整个屏幕左边距离,即绝对坐标
    getRawY():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标
    在这里插入图片描述
实现View滑动的六种方法
  • layout()
  • offsetLeftAndRight()
  • offsetTopAndBottom()
  • LayoutParams(改变布局参数)
  • scollTo
  • scollBy
  • Scroller

Android视图动画它提供了AlphaAnimation,RotateAnimation,TranslateAnimation,ScaleAnimation四种动画方式,并提供了AnimationSet动画集合来混合使用多中动画。

视图动画相比属性动画视图动画非常大的缺陷是不具有交互性,所以视图动画只能做普通的动画效果

点击事件

当我们点击屏幕,就产生了触摸事件,这个事件被封装成了一个类,而当这个类产生后,那么系统就会将这个类传递给View的层级,这个类在View的层级传递的过程就是点击事件分发

点击事件有三个重要的方法它们分别是:
  • dispatchTouchEvent(MotionEvent ev):用来进行事件的分发
  • onInterceptTouchEvent(MotionEvent ev):用来进行事件的拦截,在dispatchTouchEvent()中调用,需要注意的是View没有提供该方法
  • onTouchEvent(MotionEvent ev):用来处理点击事件,在dispatchTouchEvent()方法中进行调用
Activity的构成:

一个Activity包含一个window对象,window对象是由PhoneWindow来实现的,PhoneWindow将DecorView做为整个应用窗口的根View,而这个DecorView又将屏幕划分为两个区域一个是TitleView一个是ContentView

MeasureSpec类测量模式分为三种:
  • UNSPECIFIED:未指定模式,View想多大就多大,父容器不做限制,一般用于系统内部的测量。
  • AT_MOST:最大模式,对应于wrap_comtent属性,只要尺寸不超过父控件允许的最大尺寸就行。
  • EXACTLY:精确模式,对应于match_parent属性和具体的数值,父容器测量出View所需要的大小,也就是specSize的值。
View的draw流程

1.如果有设置背景,则绘制背景
2.保存canvas层
3.绘制自身内容
4.如果有子元素则绘制子元素
5.绘制效果
6.绘制装饰品(scrollbars)

View分类:自定义View、自定义ViewGroup(继承View和继承系统控件)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值