TextView.setTextSize が異常な動作をする - 異なる画面に対して TextView のテキスト サイズを動的に設定する方法 質問する

TextView.setTextSize が異常な動作をする - 異なる画面に対して TextView のテキスト サイズを動的に設定する方法 質問する

呼び出しTextView.setTextSize()が異常に動作しています。 を呼び出した後、setTextSize取得すると、getTextSize以前に設定した値よりもはるかに高い値が返されます。

私たちがやっていることは次のとおりです:

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

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

ベストアンサー1

ここでの違いは、この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

おすすめ記事