如果滿足特定條件,我想在運行時增加TextView
的字體大小。如何在Android中以編程方式增加文本大小?
我想以密度獨立的方式做到這一點。我知道表達應該像setTextSize(getTextSize() + 3 * factor);
,但我不知道如何拿出factor
。
任何人都可以啓發我嗎?
如果滿足特定條件,我想在運行時增加TextView
的字體大小。如何在Android中以編程方式增加文本大小?
我想以密度獨立的方式做到這一點。我知道表達應該像setTextSize(getTextSize() + 3 * factor);
,但我不知道如何拿出factor
。
任何人都可以啓發我嗎?
獲取密度的因素很簡單:
float density = context.getResources().getDisplayMetrics().density;
當你看着
setTextSize(浮點大小)
你會看到這種方法。
public void setTextSize(float size) {
setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}
這意味着TextSize會根據當前密度和您的字體首選項進行調整。
,或者你可以設置自己的setTextSize像
值是原始像素
setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
值是與設備無關的
setTextSize(TypedValue.COMPLEX_UNIT_DIP, size);
值是縮放像素
setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
值是點
setTextSize(TypedValue.COMPLEX_UNIT_PT, size);
值是英寸
setTextSize(TypedValue.COMPLEX_UNIT_IN, size);
值是以毫米爲單位
setTextSize(TypedValue.COMPLEX_UNIT_MM, size);
感謝您的回答,但問題是我不只是設置文本大小。我正在增加它,'getTextSize'以像素爲單位返回文本大小。因此我需要一些能夠與屏幕密度一起工作的東西。 –
所以你認爲'浮體密度= context.getResources()。getDisplayMetrics()。密度; setTextSize(getTextSize()+ 3 * density);'會工作嗎? –
100%肯定它會 –