Android获取控件坐标为0的原因及取得控件位置和两控件距离的方法
来源:互联网 发布:dnf网络出现异常09 编辑:程序博客网 时间:2024/06/09 10:47
在onCreate的时候去取,肯定是0,因为那个时候UI还没有渲染完毕。
只能在你后续的注册的事件中调用方法。
getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标
getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标 (不是很理解= =、)
getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标
问题来了,怎么获取两个控件的距离。
如果你给它命名了直接fvb,getLeft减一下就可以
如果你没给他命名
如果你是fragment,直接在它的view里getChildAt即可,如果你是Activity,那么你不能用setContenView了,必须获取到你当前整个布局的view,再去geiChildAt,至于具体怎么实现我暂时还没看,没空。
下面是我在view pager中获取的距离(前面说了,onCreate的时候不能获取)
mVpEmoji.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (dotDistance == 0.0) { ViewGroup vg = (ViewGroup) mRoot; ViewGroup vg2 = (ViewGroup) vg.getChildAt(1); View v1 = vg2.getChildAt(0); View v2 = vg2.getChildAt(1); dotDistance = v2.getLeft() - v1.getLeft(); } } @Override public void onPageSelected(int position) { //给那个dot一个属性动画,平移到对应第几个 } @Override public void onPageScrollStateChanged(int state) { } });
阅读全文
0 0
- Android获取控件坐标为0的原因及取得控件位置和两控件距离的方法
- Android 获取控件的坐标位置
- android设置控件的位置以及获取控件的坐标
- 如何获取控件的坐标位置
- android获取控件宽高为0的原因
- android 取得控件位置
- 取得控件的绝对位置
- Android如何获取子控件位置坐标
- 设置控件位置的两种方法
- 各种获取控件坐标的方法总结
- 控件位置的获取
- Javascript获取鼠标的位置, 获取Html控件的绝对位置的两种方法
- Android之获取控件的坐标
- mfc控件位置坐标获取
- 获取一个控件相对于父窗口的坐标位置
- Silverlight如何获取控件的屏幕坐标位置
- iOS 获取控件相对屏幕的坐标位置
- WPF获取控件位置的方法
- 操作系统学习指南(一)
- Android热修复(一):Tinker的使用(一)命令行接入
- mybatis批量update(mysql)
- git 分支合并问题:refusing to merge unrelated histories
- JSP标签详细使用
- Android获取控件坐标为0的原因及取得控件位置和两控件距离的方法
- 继承TextView来写一个BadgeView(数字提醒)
- 数据结构JavaScript描述(二)
- windows10下安装opencv3.2+QT Creator+MingGW
- 数字0-9的数量
- 如何在Delphi中用代码来完成计算字段的创建
- Java开发小技巧(三):Maven多工程依赖项目
- 阻塞队列入门
- yml换成properties后java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)