すべての画面サイズを正しく表示する必要があるAndroidアプリケーションを作成しています。私は異なるdrawableリソースフォルダで解像度に応じてdrawableをスケールすることができましたが、どうすれば純粋なテキストで同じ結果を達成できますか?Androidはさまざまな画面をテキスト化します
これを達成するには、実際に別のレイアウトフォルダを使用する必要がありますか?
ありがとうございました!
すべての画面サイズを正しく表示する必要があるAndroidアプリケーションを作成しています。私は異なるdrawableリソースフォルダで解像度に応じてdrawableをスケールすることができましたが、どうすれば純粋なテキストで同じ結果を達成できますか?Androidはさまざまな画面をテキスト化します
これを達成するには、実際に別のレイアウトフォルダを使用する必要がありますか?
ありがとうございました!
テキストサイズにはsp
を使用してください。
SP
スケールに依存しないピクセル - これは、DPユニットと同様であるが、それはまた、ユーザのフォントサイズの嗜好によってスケーリング あります。フォントサイズを指定する場合は を使用することをお勧めします。そのため、画面の密度とユーザーの好みの両方で調整されます( )。 Dimensions
dp
/dip
から
も動作することができますが、ユーザーは好みのフォントは含まれていません。
ありがとう、私は早くこのアプローチを試みたと突然それは私の質問:)したがって動作を停止した –
テキストビューのみの場合。 xmlのtextviewでサイズad dpを宣言します。 dpは画面の解像度に関連するデシピセルであり、それに応じてテキストビューのサイズが調整されます。
私はそのために自分が書いた方法を使用.. 2つのディスプレイ(1024x720、800×480)のために働いて、それはあなたのために働く願って、あまりにも
クラス:
//this is a seperated class, for button textsize
//declaration of standardvalues
public class Fontstyles {
static int INT_standardwidth = 1024, INT_standardsize = 50; //do not change
public static double BTN_TXT_size(Button BTN_X) {
Point size = new Point();
YourMainActivity.DIS_main.getSize(size);
int INT_width = size.x;
if (BTN_X.getText().length() == 0)
return 0;
// width of display (INT_width)
// width standartvalue (INT_standardwidth)
// standardfontsize (INT_standardsize)
return ((float) ((INT_width * 100/INT_standardwidth)
* (INT_standardsize * (INT_width * 100/INT_standardwidth)/100)/100));
}}
このYourMainAvtivityである:
public static Display DIS_main;
DIS_main = getWindowManager().getDefaultDisplay();
と、この(あなたから好きな場所)sizecalculationを呼び出すためのものです:TextViews
とButton
ため
YourButton.setTextSize((float) Fontstyles.BTN_TXT_size_(YourButton));
作品。
ご使用後はご返信いただき、ディスプレイに対応しているかどうかを教えてください。
テキストサイズをpxの代わりにdipで設定します。 – jeet
文字サイズはsipを使用し、他のすべてのサイズはdipを使用します。 – PravinCG