android getTextSize返回值是以畫素(px)為單位的,setTextSize()以sp為單位

yangxi_001發表於2016-03-17
使用如下程式碼時,發現字號不會變大,反而會變小:
size = (int) mText.getTextSize() + 1;
mText.setTextSize(size);
後來發現getTextSize返回值是以畫素(px)為單位的,而setTextSize()是以sp為單位的,兩者單位不一致才造成這樣的結果。

這裡可以用setTextSize()的另外一種形式,可以指定單位:
setTextSize(int unit, int size)
TypedValue.COMPLEX_UNIT_PX : Pixels
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels

下面這樣就正常了:
size = (int) mText.getTextSize() + 1;
mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

相關文章