Почему размер холста не совпадает с размером представления в onDraw? (Android)

Я пробовал с этим

@Override
protected void onDraw(Canvas canvas)
{
    Log.e("TEST", "canvas width: " + canvas.getWidth() + "");
    Log.e("TEST", "view width: " + this.getWidth() + "");

    Log.e("TEST", "canvas height: " + canvas.getHeight() + "");
    Log.e("TEST", "view height: " + this.getHeight() + "");
    super.onDraw(canvas);
    Log.e("TEST", "canvas width: " + canvas.getWidth() + "");
    Log.e("TEST", "view width: " + this.getWidth() + "");

    Log.e("TEST", "canvas height: " + canvas.getHeight() + "");
    Log.e("TEST", "view height: " + this.getHeight() + "");
}

И вот результат:

canvas width: 320
view width: 480
canvas height: 533
view height: 300
canvas width: 320
view width: 480
canvas height: 533
view height: 300

Часть из моего main.xml

    android:layout_width="480px"
    android:layout_height="300px"

Согласно моему журналу печати и части моего xml, размер представления верно. Мое устройство 480x800, и ширина и высота, разделенные на результаты журнала, дают 1,5 (800/533 = 1,5 и 480/320 = 1,5), поэтому кажется, что я получаю Canvas со всего экрана для рисования. Почему это так и почему оно такое маленькое, и что мне делать, чтобы рисовать нормально?

9
задан SuitUp 8 June 2012 в 19:15
поделиться