Android2D 画面の大きさ
さて, Android でCanvasに2DGraphicsを書いていく訳ですが, 座標や大きさなどを決めながら描画する上で重要なのは, 画面のサイズ(描画サイズ)です。
描画できる全体のサイズから, どの大きさでいろいろ描画するかを実際に決めていくのに, 描画サイズが欲しいものです。
いろいろサンプルを探しながら考えましたが
愚鈍なプログラマーの独り言 のページを参考にしました。
どうやら, Canvasサイズとスクリーンサイズなるものがあるらしく, どっちやねんということになりそうです。
ではサンプルです。何も書いていません。数字をチェックしてみてください。
public class MultiLineDemoView extends View
{
private Paint paint;
private int screenWidth; // width
private int screenHeight; // height
private static final String TAG = "MultiLineDemoView";
public MultiLineDemoView ( Context context )
{
super(context);
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
}
@Override
protected void onSizeChanged ( int w, int h, int oldw, int oldh )
{
super.onSizeChanged(w, h, oldw, oldh);
this.screenWidth = w;
this.screenHeight = h;
}
@Override
protected void onDraw ( Canvas canvas )
{
canvas.drawColor(Color.BLACK);
Log.d(TAG, "Width: " + screenWidth);
Log.d(TAG, "Height: " + screenHeight); // just fit
// Get Width and Height from canvas
int canvasWidth = canvas.getWidth();
int canvasHeight = canvas.getHeight();
Log.d(TAG, "Canvas Width: " + canvasWidth);
Log.d(TAG, "Canvas Height: " + canvasHeight);
}
}
onSizeChangedで書かれているものが, どうやらスクリーンサイズでこれを基準に描画すると見た目はよさそう。
Canvas オブジェクトからcanvasのサイズが取得できます。
