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のサイズが取得できます。