视图坐标系
一张图,简介明了View知识题词体系有
一张图,了解坐标系
一张图,知道视图坐标系
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中使用属性动画