我正在开发一个Android 2.2应用程序。
我正在使用这种方法在View中绘制文本:
public void draw(Canvas c)
{
p.setColor(Color.WHITE);
if(name != null)
c.drawText(name, getLeft(), getTop(), p);
}
如何获取名称文本的高度和宽度?
如果我这样做(p是一个Paint对象):
p.getTextBounds(name, 0, name.length(), bounds);
我使用 name = 'Loading', bounds = Rect(1, -10 - 42, 3);
。但是我不知道为什么会显示一个奇怪的矩形。有任何线索吗?这是我的解决方案:
public class MyView extends ARSphericalView
{
public String name;
public MyView(Context ctx)
{
super(ctx);
inclination = 0;
}
public void draw(Canvas c)
{
/*
p.setColor(Color.WHITE);
if(name != null)
c.drawText(name, getLeft(), getTop(), p);
*/
p.setColor(Color.BLACK);
if(name != null)
{
Rect bounds = new Rect();
c.drawText(name, getLeft(), getTop(), p);
setBackgroundColor(Color.WHITE);
p.getTextBounds(name, 0, name.length(), bounds);
c.drawRect(bounds, p);
}
}
}
但是,它不起作用。我得到了那个奇怪的矩形。