3

アプリに TableLayout があり、ローカルの SQLite DB からデータを取得してプログラムで行を追加しています。また、プログラムで各行に TextView を作成するため、それらのテキスト サイズを 1 つ指定する必要があります。そのサイズはすべての画面サイズに適しているわけではありません。たとえば、スマートフォンで見栄えのするものを選択すると、大型のタブレットでは小さすぎます。

XML に TextViews があれば、画面サイズごとに異なるレイアウトを作成するだけで済みますが、プログラムで TextViews を作成するテキスト サイズでその柔軟性を実現するにはどうすればよいでしょうか?

よろしくお願いします。

4

1 に答える 1

1

私は以下のアプローチでそれを解決しました。最もエレガントではありませんが、かなりうまく機能しました:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);

int textsize = 0;

if(screenInches<5)
        textsize = 16;
else if(screenInches<7.5)
        textsize = 22;
else
        textsize = 24;  
于 2012-12-14T10:37:51.607 に答える