Androidの画面サイズの違い

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まるい

Androidの画面サイズの違い

#1

投稿記事 by まるい » 11年前

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になるので
画面からはみ出してしまうのですが。
そもそも、この考え方がダメなのでしょうか?

ご教授ください。

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 11年前

両者の縦横の比率が違うので、縦か横のどちらかのスケールに合わせると、合わせていない方の縦か横がはみ出すか小さくなりすぎます。
縦と横を別々のスケールで表示するか、余白を何かで埋めるか、画面をはみ出しても良いゲームデザインにするか、などを考えてみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る