Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – getWidth()和getHeight在onMeasure()之后返回零(特定设备)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到,在调用onMeasure()之后,我的应用程序视图为getWidth()和getHeight()返回0.这只发生在少数设备上,对于大多数 Android设备,下面的代码工作正常.我的checkViewAndLoad()函数根据视图的大小加载缩放的位图.
@Override
protected void onMeasure(int widthMeasureSpec,int heightMeasureSpeC) {
    super.onMeasure(widthMeasureSpec,heightMeasureSpec);

    Log.d("widthMeasureSpec",Integer.toString(MeasureSpec.getSize(widthMeasureSpeC)));
    Log.d("heightMeasureSpec",Integer.toString(MeasureSpec.getSize(heightMeasureSpeC)));
    Log.d("viewWidth",Integer.toString(getWidth()));
    Log.d("viewHeight",Integer.toString(getHeight()));

    checkViewAndLoad();
}

这是一个设备的日志(Motorola Droid Razr MaxX),它在onMeasure()之后为getWidth()/ getHeight()返回零:

09-03 20:55:58.359: D/widthMeasureSpec(29496): 540
09-03 20:55:58.359: D/heightMeasureSpec(29496): 720
09-03 20:55:58.359: D/viewWidth(29496): 0
09-03 20:55:58.359: D/viewHeight(29496): 0

我也尝试手动设置MeMeuredDimensions(),但是这一手不会影响日志.

有人可以告诉我这里我做错了什么,或者在调用onMeasure()之后如何获得SurfaceView的宽度/高度?

解决方法@H_618_14@
在这里使用getMeasuredWidth / Height(). getWidth / Height()在布局之后才有效.

大佬总结

以上是大佬教程为你收集整理的android – getWidth()和getHeight在onMeasure()之后返回零(特定设备)全部内容,希望文章能够帮你解决android – getWidth()和getHeight在onMeasure()之后返回零(特定设备)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。