Получение высоты и ширины текста с помощью Canvas

Я разрабатываю приложение для Android 2.2.

Я использую этот метод для рисования текста в представлении:

    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);

I get With name = 'Загрузка', 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);
        }
    }
}

Но это не работает. У меня получился странный прямоугольник.

10
задан VansFannel 10 October 2011 в 10:26
поделиться