android 关于如何获取控件矩阵 getHitRect
来源:互联网 发布:软件著作权加急 编辑:程序博客网 时间:2024/05/19 23:25
getHitRect作为获取控件所在的矩阵范围函数,简直就像个神器。当然他也有不给力的情况,我们平常调用时候如果是在控件的监听器里调用就没事,但是如果主动的在onCreate 或者 onResume中,拿到的矩阵坐标全是0.
解决如下:
As the hit rect is in the parent coordinate space, the parent first needs to layout its children which it hasn't done yet during onCreate()
. Take a look at the solution here for an example of running in post()
. If you have a custom view, getHitRect()
within onDraw()
will give you the correct dimensions too.
大概意思就是getHitRect方法不能直接在onCreate中调用 ,原因是该控件还未在这个界面框架中得以测量布局,不知道到底是多少,所以我们要寻找一个时机去做这件事,两个方法:
方法1 运用该控件执行post (就把下面的那个parent当成你要获取getHitRect的方法)
I asked a friend at Google and they were able to help me figure out how to use TouchDelegate. Here's what we came up with:
final View parent = (View) delegate.getParent();parent.post( new Runnable() { // Post in the parent's message queue to make sure the parent // lays out its children before we call getHitRect() public void run() { final Rect r = new Rect(); delegate.getHitRect(r); r.top -= 4; r.bottom += 4; parent.setTouchDelegate( new TouchDelegate( r , delegate)); }});
方法2 自定义该控件 覆写onDraw 调用getHitRect.
学弟,学长只能帮到你这里了!
- android 关于如何获取控件矩阵 getHitRect
- android 关于如何获取控件矩阵 getHitRect
- Android中的获取控件矩阵gethitrect方法
- Android获取View位置getHitRect、getDrawingRect、getLocalVisibleRect、getGlobalVisibleRect说明
- 关于如何获取当前焦点控件并判断控件类型
- 关于如何获取当前焦点控件并判断控件类型
- 如何获取android控件的高度
- 如何获取到Android控件的高度
- 如何获取到Android控件的高度
- 如何获取到Android控件的高度
- 如何正确获取Android控件的高度
- 如何获取到Android控件的高度
- Android如何获取子控件位置坐标
- 自定义控件如何获取 android:layout_width属性
- 如何获取到Android控件的高度
- 如何获取到Android控件的高度
- android中 如何设置控件获取焦点
- Android中如何获取控件宽高?
- git 关于分支,关于远程分支,关于push pull 的时机
- rmi webservice socket 协议 区别
- Oracle 里面的 TRANSLATE 以及 SQL Server 下的实现
- 常用的 <crtdbg.h>
- c++二叉树(统计叶节点,判断两颗二叉树是否相等,交换二叉树的左孩子右孩子,输出叶子到根节点的路径)
- android 关于如何获取控件矩阵 getHitRect
- OSI的七层结构
- 编译MiniGUI 程序
- compiler LLVM GNU
- ADB server didn't ACK 处理
- 算法整理
- Android G1的nand分区情况
- 关于jqGrid的multiselect,multiboxonly,multikey shift 多选
- cocos2d 2.x 实现精灵的会移动的遮罩