1. ホーム
  2. android

[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法

2022-07-18 09:37:43

質問

呼びかけ TextView.setTextSize() が異常に動作している。の呼び出しの直後に setTextSize を得ると getTextSize を得ると、先に設定した値よりもずっと高い値が返されます。

私たちがやっていることはこうです。

zoomControl.setOnZoomInClickListener(new OnClickListener() {
    public void onClick(View view) {
        float size = mViewShabad.getTextSize() + 1;
        textView.setTextSize(size);
    }
});

これを見たことがある人はいますか?

どのように解決するのですか?

ここでの違いは setTextSize(int size) メソッドでは、デフォルトで単位タイプは "sp"または "スケール ピクセル"になっていることです。この値は、各スクリーン密度 (ldpi、mdpi、hdpi) に対して異なるピクセル寸法となります。

getTextSize() は、一方では、テキストの実際のピクセル寸法を返します。

を使うことができます。 setTextSize(int unit, float size) を使用してユニットタイプを指定します。これに対する定数値はTypedValueクラスで見つけることができますが、そのうちのいくつかを紹介します。

TypedValue.COMPLEX_UNIT_PX   //Pixels

TypedValue.COMPLEX_UNIT_SP   //Scaled Pixels

TypedValue.COMPLEX_UNIT_DIP  //Device Independent Pixels