1 View与ViewGroup
LinearLayout等布局控件继承ViewGroup,TextView继承View,而ViewGroup也继承自View
2 坐标系
Android系统中有两个坐标系,分别为View坐标系和Activity坐标系
2.1 Andorid坐标系
android将屏幕左上角的顶点作为Andorid坐标系的原点,原点向右是X轴正方向,原点向下是Y轴正方向。使用getRawX()和getRawY()方法获得的是Andorid坐标系的坐标。
2.2 View坐标系
2.1.1 View获取自身的宽高
width=getRight()-getLeft()//该控件最右面的位置距离减去最左面的距离
height=getBottom-getTop()//最下面的控件位置减最上面的距离
系统提供了获取View控件宽和高的方法 int型
private void getHeight()
{
TextView textView = new TextView(context);
textView.getHeight();//获取控件高度
textView.getWidth();//获取控件宽度
}
2.2.2 View自身的坐标
通过以下方法获取View到父控件的距离 int型
textView.getTop();//获取View自身 顶边到其父布局顶边 的距离
textView.getBottom();//获取View自身 底边 到其父布局顶边 的距离
textView.getLeft();//获取View自身左边 到其父布局左边的距离
textView.getRight();//获取View自身右边 到其父布局左边的距离
2.2.3 MotionEvent提供的方法
View 和ViewGroup的最终点击事件都是由onTouchEvent提供
@Override
public boolean onTouchEvent(MotionEvent event)
{
float x = event.getX();//获取点击事件距离控件左边的距离,即视图坐标
float y = event.getY();//获取 点击事件距离控件顶边的距离,即视图坐标
float rawX = event.getRawX();//获取点击事件距离整个屏幕左边的距离,及绝对坐标
float rawY = event.getRawY();//获取点击事件距离整个屏幕顶边的距离,及绝对坐标
return super.onTouchEvent(event);
}
来源:CSDN
作者:文浩1030
链接:https://blog.csdn.net/weixin_37912278/article/details/103478642