如题。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比整个屏幕大的多,明显不对。
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比整个屏幕大的多,明显不对。
解决方案 »
- android2.3,usb转以太网有线PPPOE拨号
- Android多线程设计模式之-wait()和notify()机制
- 获取服务器数据的方式?
- 关于views.setTextViewText的值
- android 自动画图问题
- android 自带输入法开启与关闭的事件怎么获得
- 怎么在多个应用间数据共享
- androidannotations-2.7.1框架引用问题
- 关于安卓打包jar文件的问题
- android开发中 我使用的是百度API遇到的问题!!本人菜鸟希望大家帮助下
- android通过webservice访问远程数据库,xml文件解析的问题?
- Android事件有关函数getHistorySize()是什么含义?
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();