Android では、各メーカーにより画面サイズが異なります。縦サイズ×横サイズの違いに加えて画面密度も注意点になります。
画面サイズだけを留意していても、画面密度により横サイズがうまく収まらないことが発生します。その時の対応をまとめました。
「abcde…890」(36文字)を横に表示するアプリで、以下のシミュレータ画面で順番に確認しました。
・10inch WXGA(tablet)の画面
画面に収まっていて機能上問題ありませんが、横半分の使用になっているので工夫が必要です。
・7 WSVGAの画面
きれいに収まっています。
・Galaxy Nexusの画面
横が入りきっていません。
・Nexus7の画面
きれいに収まっています。
画面解像度による対応
Galaxy Nexusは、画面サイズ720×1280ですが、横サイズが画面から溢れてしまっています。
Galaxy Nexusの画面は、画面密度がxhdpi(超高解像度)で作成されているので、画面密度で判断して対応を行います。
適切な画面表示対応をする場合、画面サイズも絡めて対応が必要になるケースがありますが以下のソースは画面サイズに関しては、使用していません。
TextView TtextView01 = (TextView) findViewById(R.id.textView01); <pre><code> TtextView01.setWidth(600); TtextView01.setHeight(40); TtextView01.setTextSize(30); TtextView01.setText(&quot;abcdefghijklmnopqrstuvwxyz1234567890&quot;); //ディスプレイサイズ取得 WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE); // ディスプレイのインスタンス生成 Display disp = wm.getDefaultDisplay(); Point size = new Point(); disp.getRealSize(size); //画面密度 float scale = getResources().getDisplayMetrics().density; if (scale &gt;= 1.0){ TtextView01.setTextSize(18); } </code></pre>
フォントサイズを30から18に変更した対応で、画面上の表示は以下になりました。