视图坐标系

一张图,简介明了View知识题词体系有

android top命令各列参数_ide


一张图,了解坐标系

android top命令各列参数_控件_02


一张图,知道视图坐标系

android top命令各列参数_点击事件_03


View的获取自身方法大全

获取自身生宽高

  • getHeight():高度
  • getWidth():宽度
    获取自身坐标(到其父控件之距)
  • getTop():自身定边到父顶边距
  • getLeft():自身左边距到父左边
  • getRight():自身右边到父左边
  • getBottom():自身底边到顶边
    MotionEvent提供的方法(最终的事件触发由onTouchEvent(MotionEvent event)来处理)
  • getX():获取点击事件距离控件左边的距离,即视图坐标
  • getY():获取点击事件距离控件顶边的距离,即视图坐标
  • getRawX():获取点击事件距离整个屏幕左边距离,即绝对坐标
  • getRawY():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标

标题六大滑动方式 layout()

  • offsetLeftAndRight()与offsetTopAndBottom()
  • LayoutParams(改变布局参数)
  • view动画
  • scollTo与scollBy

(瞬间滑动,用户体验不好):scollTo(x,y)——>移动到具体的坐标点;scollBy调用其方式,移动view的内容

  • Scroller:

配合View中的computeScroll()方法滑动

属性动画

视图动画
  • 提供了AlphaAnimation,RotateAnimation,TranslateAnimation,ScaleAnimation四种动画方式
  • 提供了AnimationSet动画集合来混合使用多中动画。
  • List item
  • 只能显示其效果,不能相应事件
属性动画
  • ObjectAnimator类——>

更精细化的控制,多个组合到AnimatorSet形成一个动画,基本实现所有的动画效果
必须有get与set方式

  • 相关属性值:

*translationX&translationY:*作为增量控制View对象从他的布局容器的左上角开始位置。
*rotation、rotationX、rotationY:*控制View对象围绕它的支点进行2D和3D旋转。 PrivotX&PrivotY:控制View对象的支点位置,围绕这个支点进行旋转和缩放变换处理。默认该支点位置就是View对象的中心点。
*alpha:*透明度,默认是1(不透明),0代表完全透明。
*x和y:*描述View对象在它容器中的最终位置,它是最初的做上角坐标和translationX,translationY值的累计的和。
**V

valueAnimator

不提供任何动画效果,相当于一个数值发生器,在ValueAnimator监听数值的变化,完成动画的变化

动画的监听
start,Repeat,End,Cancel四个过程

ObjectAnimator animator=ObjectAnimator.ofFloat(view,"alpha",1.5f);
        animator.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {
            }
            @Override
            public void onAnimationEnd(Animator animation) {
            }
            @Override
            public void onAnimationCancel(Animator animation) {
            }
            @Override
            public void onAnimationRepeat(Animator animation) {
            }
        });
    }

通过AnimatorListenterAdaper选择必要的事件监听

ObjectAnimator animator=ObjectAnimator.ofFloat(view,"alpha",1.5f);
        animator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                super.onAnimationEnd(animation);
            }
        });
组合动画-AnimatorSet

提供了play()方法,传入到一个Animator对象,并返回一个AnimatorSet.Builder的实例。
AnimatorSet.Builder四种方式:

  • after(Animator anim)

将现有动画插入到传入的动画之后执行

  • after(long delay)

将现有动画延迟指定毫秒后执行

  • before(Animator anim)

将现有动画插入到传入的动画之前执行

  • with(Animator anim)

将现有动画和传入的动画同时执行

组合动画-PropertyValuesHolder
xml中使用属性动画