Android getWidth()在View的onDraw中返回0

Android getWidth()在View的onDraw中返回0,第1张

概述这是我的代码: if (myView == null) { myView = new View(mContext) { @Override protected void onDraw(final Canvas canvas) { super.onDraw(canvas); 这是我的代码:

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所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1125413.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存