
if (myVIEw == null) { myVIEw = new VIEw(mContext) { @OverrIDe protected voID onDraw(final Canvas canvas) { super.onDraw(canvas); final float wIDth = (float)getWIDth(); ...... } }; addVIEw(myVIEw); } requestLayout(); 虽然mContext的大小不为零,但我的代码中的宽度始终为0.任何人都可以建议我得到宽度为0的可能原因是什么?谢谢
解决方法 您必须在onSizeChanged处理程序中记录画布的尺寸,然后在onDraw处理程序中使用它们.private int canvasWIDth;private int canvasHeight;@OverrIDeprotected voID onSizeChanged(int w,int h,int olDW,int oldh) { super.onSizeChanged(w,h,olDW,oldh); canvasWIDth = w; canvasHeight = h;}@OverrIDeprotected voID onDraw(Canvas canvas) { super.onDraw(canvas); final float wIDth = (float)canvasWIDth; ...} 总结 以上是内存溢出为你收集整理的Android getWidth()在View的onDraw中返回0全部内容,希望文章能够帮你解决Android getWidth()在View的onDraw中返回0所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)