SurfaceViewの一連の関数は次の順番で呼ばれるようです。
そのため、SurfaceChangedは初回も呼ばれるけど、 SurfaceChangedで取得したWidthやHeightは、SurfaceCreatedでは使えない模様。