`
kerlubasola
  • 浏览: 677104 次
文章分类
社区版块
存档分类
最新评论

android drawText/drawLines不显示的原因

 
阅读更多


1.重写View的onDraw不被执行的情况:

如果重写了View的onDraw方法没有被执行。执行方法


2.重写View的onDraw方法执行了(其中的log信息为证),draw方法不好用的可能:代码如下


这段代码是有问题的。

首先:

如果这个是充满父控件显示的,这个时候,线可以画出来,距离边框10像素,画一个矩形。

但是文字不能画出来。这里的原因是:drawText方法的x、y是文字左下角的坐标。所以文字出屏幕了。改成,

可以看到文字了。


其次:

如果View的布局属性不是充满父控件,这样就真的出问题了。

例如父控件的布局是充满父控件的,而被重写的这个View的宽搞都为200像素,

这样会发现,线和文字都没有画上去。原因是

getLeft(),方法获得的是View相对父空间的像素点位置,也就是View的左边框距离父控件的左边框的距离。假设是500像素。

这个时候在drawLines方法总用500的意思是在距离View左边框500像素的位置画点。而View总共的宽度才200像素。

超出了。所有看不到画的线。

在drawText和drawLines方法中,View的左边框像素就是0,top也是0.跟父控件没关系,即跟等系列方法没有关系。


总之,drawText/drawLines不显示的原因,要么是onDraw方法没有执行,要么就是坐标位置没有指定对。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics