如题。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比整个屏幕大的多,明显不对。
解决方案 »
- android支持html5 video标签,实现在线播放吗
- android4.0.3 Luancher2 源码编译问题
- android -soap 问题~~~~~~~~
- 有没有做Android系统应用开发的朋友,大家一起来交流吧
- 编译android源码时,意外中断,如何能让其接着编译?
- Android发布应用程序.要不要注释掉Log.v Log.d之类的语句,会不会影响程序性能!!
- 关于android 的一个疑问!
- Android 自定义通讯录取代系统通讯录?
- android手机远程控制PC鼠标
- android 开发中我在activity.java中给.xml文件中的textview赋值,但是运行时不能显示出来。
- 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();