ページ 11

Androidの画面サイズの違い

Posted: 2014年7月31日(木) 23:46
by まるい
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になるので
画面からはみ出してしまうのですが。
そもそも、この考え方がダメなのでしょうか?

ご教授ください。

よろしくお願いいたします。

Re: Androidの画面サイズの違い

Posted: 2014年8月01日(金) 14:52
by softya(ソフト屋)
両者の縦横の比率が違うので、縦か横のどちらかのスケールに合わせると、合わせていない方の縦か横がはみ出すか小さくなりすぎます。
縦と横を別々のスケールで表示するか、余白を何かで埋めるか、画面をはみ出しても良いゲームデザインにするか、などを考えてみてください。