当前位置:编程学习 > wap >>

将view添加到WindowManager时如何获得View所需大小的问题?

如题。

getWidth/Height是不行的,以为此时view还没有绘制。在网上看到有如下方式:
int widthSpec = MeasureSpec.makeMeasureSpec(mDecorView.getWidth(), MeasureSpec.AT_MOST);
        int heightSpec = MeasureSpec.UNSPECIFIED;
        mDecorView.measure(widthSpec, heightSpec);
        Log.v("MyTag", "screen height: " + mWindowManager.getDefaultDisplay().getHeight());
        Log.v("MyTag", "height: " + mDecorView.getMeasuredHeight()); 
但是发现得到的height比整个屏幕大的多,明显不对。 --------------------编程问答-------------------- MeasureSpec.AT_MOST
 MeasureSpec.UNSPECIFIED改成 MeasureSpec.EXACTLY试试 --------------------编程问答-------------------- 试试
        int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
        int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
        mMenuLayout.measure(w, h);
        int width =mMenuLayout.getMeasuredWidth();
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,