Por que a tela não é do mesmo tamanho que a exibição no onDraw? (Android)

Eu tentei com isso

@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() + "");
}

E esse é o resultado:

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

Parte do meu main.xml

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

De acordo com minhas impressões do Log e parte do meu xml, o tamanho da visualização está correto. Meu dispositivo é 480x800 e a largura e a altura divididas pelos resultados do Log dão 1,5 (800/533 = 1,5 e 480/320 = 1,5), então parece que eu recebo Canvas de tela inteira para desenhar. Por que isso é, e por que é tão pequeno e o que devo fazer para desenhar de maneira normal?

questionAnswers(1)

yourAnswerToTheQuestion