1. textView.setTextSize(66f);------->2
2. public void setTextSize(float size) {
setTextSize(TypedValue.COMPLEX_UNIT_SP, size); ------>3
}
3. public void setTextSize(int unit, float size) {
Context c = getContext();
Resources r;
if (c == null)
r = Resources.getSystem();
else
r = c.getResources();
setRawTextSize(TypedValue.applyDimension( -------- >4
unit, size, r.getDisplayMetrics()));
}
private void setRawTextSize(float size) {
if (size != mTextPaint.getTextSize()) {
mTextPaint.setTextSize(size);
if (mLayout != null) {
nullLayouts();
requestLayout();
invalidate();
}
}
}
以上是调用代码
setTextSize 调用了 setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
setTextSize(TypedValue.COMPLEX_UNIT_SP, size); 里面调用了
setRawTextSize(TypedValue.applyDimension( unit, size, r.getDisplayMetrics()));
最后调用了 invalidate(); 重新绘制。
颜色 属性 也是一样的最后都是调用的invalidate() 进行重新绘制