View简单使用

  • 何为View

View是android中所有控件的基类,是界面层的一种抽象,代表啦一个控件。同时还有ViewGroup,即控件组,ViewGroup中包含啦n个View,但是ViewGroup也是继承至View,所以View和ViewGroup组合成一树形结构。

 

  • View中的位置参数

        View的位置由四个属性决定 top,left,right,bottom即相对于父容器左上角左边和右下角坐标。android中说的view 一般为一块矩形区域,所以通过这四个参数就可以固定一个view的位置和这个view的宽高。可以通过View的get方法来得到这四个参数,即getTop,getLeft,getRight,getBottom。

       在view移动的时候top,和left是不会改变的,他们表示原始左上角的坐标。在android3.0之后系统又加入啦几个参数 分别是x,y,translationX,translationY,在view移动时只是这四个参数发生改变。其中x和y表示左上角的坐标,translationX和translationY表示相对于父容器的偏移量,默认是0.其中x=left+translationX;y=top+translationY。

 

  • 点击事件的位置关系

       手指在屏幕上的点击事件,android中用MotionEvent来处理

 MotionEvent.ACTION_DOWN //按下
 MotionEvent.ACTION_MOVE //移动
 MotionEvent.ACTION_UP   //抬起

系统提供啦几个方法来获取点击事件的位置,getX/getY和getRawX/getRawY, 他们的区别是相对于当前view左上角的x和y轴坐标,相对于手机屏幕左上角的x,y轴坐标。

TouchSlop:手指滑动可以被捕获的最小距离。这是一个系统规定的常量,可以通过

ViewConfiguration.get(getContext()).getScaledTouchSlop();

来获得。

  • View移动的方法

通过View的scrollBy和scrollTo来移动view,scrollBy其实内部也调用啦scrollTo。scrollBy是基于当前位置的相对滑动,scrollTo是基于传递参数的绝对滑动。他们都是把view的内容进行啦滑动,view在布局中的位置是不会变的。其中在滑动时View内部的两个属性mScrollX和mScrollY这两个参数会发生变化,他们的值比较有意思,就是用view边缘-内容边缘得到的值。

通过View动画或者属性动画也可以将View进行移动,但是View动画会只是在移动后的位置上投影啦该view的影像,view上的点击事件还是在原位置上,属性动画虽然没有这种问题,但是只有android3.0之后才有属性动画,对于3.0之前的系统如果 想要使用属性动画的话 需要引用第三方开源库nineoldandroids。或者使用另一种方案,在移动后的位置上放一个和移动view相同的view并绑定点击事件,动画开始前隐藏,开始后显示。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值