Занятая область, область отображения и область рисования представления на экране
Получение двух значений заполнения и значения поля
Согласно приведенному выше рисунку мы можем знать, что заполнение фактически представляет собой расстояние между содержимым представления и представлением, а значение Margin представляет собой расстояние между представлением и родительским представлением.Значение заполнения и поля можно установить
в файл xml, так что пока загружается xml файл, и эти значения можно получить независимо от того, отрисовывается View или нет.
Методы getLeft(), getTop(), getRight(), getBottom() в Three View
Если вы хотите получить ширину и высоту подпредставления, вы также можете получить его с помощью этих четырех значений:
childview_width=getRight()-getLeft();
childview_height=getBottom()-getTop();
Однако, в отличие от значений magin и padding выше, эти четыре значения можно получить только после завершения измерения.Вызов метода перед измерением вернет 0, например: его можно вызвать в посте (Runnable
) представления, или в представлении, вызываемом в событии клика onClick, или в методе onPause() действия (или фрагмента). Его нельзя вызвать в onResume() Activity (или Fragment), потому что View рисуется при выполнении метода onResume(). В настоящее время View может быть еще не отрисован, поэтому возвращаемое значение равно 0.
Четыре метода получения координат в MotionEvent
MotionEvent: getX(),getY(),getX(int),getY(int),getRawX(),getRawY(),getRawX(int),getRawY(int)方法:
Пять getLocationInWindow() и getLocationOnScreen()
getLocationInWindow — координаты C с B в качестве источника
getLocationOnScreen — с A в качестве источника.
5.1 getLocationInWindow()
:
getLocationInWindow(): координатная позиция элемента управления в его родительском окне
Метод использования: View.getLocationInWindow(int[] location)
start = (Button) findViewById(R.id.start);
int []location=new int[2];
start.getLocationOnScreen(location);
int x=location[0];//获取当前位置的横坐标
int y=location[1];//获取当前位置的纵坐标
5.2 getLocationOnScreen():
Координата положения элемента управления на всем его экране.
Метод использования: View.getLocationOnScreen(int[] location)
start = (Button) findViewById(R.id.start);
int []location=new int[2];
start.getLocationOnScreen(location);
int x=location[0];//获取当前位置的横坐标
int y=location[1];//获取当前位置的纵坐标
Шесть getGlobalVisibleRect(): глобальная видимая область
Координаты видимой части представления относительно экрана.
Пример кода:
Rect globalRect = new Rect();
view.getGlobalVisibleRect(globalRect);
globalRect.getLeft();
globalRect.getRight();
globalRect.getTop();
globalRect.getBottom();
Схематическая диаграмма:
Семь getLocalVisibleRect(): локальная видимая область
Координаты видимой части Вида относительно левого верхнего угла его собственного положения Вида.
Образец кода:
Rect localRect = new Rect();
view.getLocalVisibleRect(localRect);
localRect.getLeft();
localRect.getRight();
localRect.getTop();
localRect.getBottom();
示意图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/6c91e110dd2a416cbe820b59531e3b3f.png)
Восьмое резюме
Справочный пример: https://zhuanlan.zhihu.com/p/274321442