View的一些基本概念和位置参数

1.什么是View?

      View是Android中所有控件的基类,View是界面的控件的一种抽象。

      不管是简单的Button和TextView还是复杂的RelativeLayout和ListView,共同基类都是View。

2.View的位置参数。

View的位置由它的四个顶点决定。分别对应View的四个属性:top、left、right、bottom。

top是左上角纵坐标、left是左上角横坐标、right是右下角横坐标、bottom是右下角纵坐标。

注意:这些坐标是相对于父容器来说的,是1种相对坐标。

weight = right - left; height = bottom - top。

x = left +ttraslationX

3. 一些基础概念:

     1)MotionEvent :触碰屏幕后的事件。

           ACTION_DOWN (手指按下)、ACTION_MOVE(手指滑动) 、ACTION_UP(手指离开)

     2)TouchSlop:能被系统识别出的最小滑动距离,是一个常量,由不同的手机系统决定

     3)VelocityTracker:速度追踪器

          用于追踪手指在滑动过程中的速度,包括水平速度和竖直方向的速度。

          速度 = (终点位置 - 起点位置)/ 时间段

     4)GestureDetector:手势检测,辅助检测单击、滑动、长按、双击等行为。看根据项目需要选择性地重写某个方法。

     5)Scroller :控制弹性滑动,需要配合computeScroll方法实现。

------------------------------------------------------------------------------

4. 滑动scrollTo和scrollBy

scrollTo(x,y) 基于当前位置绝对滑动, 且滑动的不是view本身,而是view的内容。参数x和y的值为正数,以view的左顶点为坐标向上向左移动。

由于scrollTo(x,y)是一个以坐标点为目的的滚动,指定它所移动的坐标位置,但如果重复移动的坐标未发生改变,你只能看到一次移动效果。

 private void scrollView (){
        int x = 20;
        int y = 20;
        tvScroll.scrollTo(x, y);
    }

scrollBy(x,y) 基于当前位置相对滑动。由于是相对数值,所有可以为多次。

 private void scrollByView (){
        int x = 20;
        int y = 20;
        tvScroll.scrollBy(x, y);
    }

5. 利用动画去滑动。

ps:此种方式不能改变View的位置,位置参数,包括宽和高。

1)属性动画

private void animatorView () {
        ObjectAnimator.ofFloat(tvScroll, "translationX", 0, 100).setDuration(2000).start();
    }

2)XML方式

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter = "true"
    android:zAdjustment = "normal">
    <translate
        android:duration = "100"
        android:fromXDelta = "0"
        android:fromYDelta = "0"
        android:toXDelta = "100"
        android:toYDelta = "100" />
</set>

6. 通过改变位置参数。

private void changeLayoutParams () {
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) tvScroll.getLayoutParams();
        params.width += 15;
        params.leftMargin += 10;
        tvScroll.requestLayout();
    }

总结:以上三种滑动方式优缺点如下

scrollTo/scrollBy,操作简单,适用于对View内容的滑动。

动画,操作简答,主要适用于没有交互的View和实现复杂的动画效果。

改变布局参数,操作稍微复杂,适用于没有交互的View。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值