Androidの画面サイズの違い
Posted: 2014年7月31日(木) 23:46
androidでSurfaceViewを使ってゲームを作ってます。
機種によっての画面サイズの違いをどう処理いたらいいのか悩んでます。
Canvas.scaleを使って画面サイズに合わせて全体を拡大縮小すればいいのかなと
思ったので試してみたのですがうまくいきません。
手元に画面サイズ1280x720 と 800x480の実機があるので、1280X720を基準サイズとしています。
float scaleX = getWidth() / 720;
float scaleY = getHeight() / 1280;
scale = scaleX > scaleY ? scaleY : scaleX;
canvas.scale(scale, scale);
上記のような感じで比率を計算して、描画させてみたのですが、800x480の実機で試すと結構小さく表示されてしまいます。
これは、こういうものなのでしょうか?
scale = 0.625 なので、幅480x0.625 サイズでの表示になってしまうということでしょうか?
反対に基準を800x480として考えると、1280x720で表示させるとscale = 1.5になるので
画面からはみ出してしまうのですが。
そもそも、この考え方がダメなのでしょうか?
ご教授ください。
よろしくお願いいたします。
機種によっての画面サイズの違いをどう処理いたらいいのか悩んでます。
Canvas.scaleを使って画面サイズに合わせて全体を拡大縮小すればいいのかなと
思ったので試してみたのですがうまくいきません。
手元に画面サイズ1280x720 と 800x480の実機があるので、1280X720を基準サイズとしています。
float scaleX = getWidth() / 720;
float scaleY = getHeight() / 1280;
scale = scaleX > scaleY ? scaleY : scaleX;
canvas.scale(scale, scale);
上記のような感じで比率を計算して、描画させてみたのですが、800x480の実機で試すと結構小さく表示されてしまいます。
これは、こういうものなのでしょうか?
scale = 0.625 なので、幅480x0.625 サイズでの表示になってしまうということでしょうか?
反対に基準を800x480として考えると、1280x720で表示させるとscale = 1.5になるので
画面からはみ出してしまうのですが。
そもそも、この考え方がダメなのでしょうか?
ご教授ください。
よろしくお願いいたします。