Android 自定义控件中正确使用setTextSize设置字体大小

Android 自定义控件中正确使用setTextSize设置字体大小。

setTextSize()有2个重载方法,一个参数的方法,单位是scaled pixel(sp),不是px(像素)。

public void setTextSize(float size) {
	setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}
    
public void setTextSize(int unit, float size) {
	if (!isAutoSizeEnabled()) {
		setTextSizeInternal(unit, size, true);
	}
}

getDimensionPixelSize()方法返回的是像素数值,所以

var textSize = typedArray.getDimensionPixelSize(R.styleable.BatteryStyle_android_textSize, 16 )
tvBattery.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);

所以在知道数据单位类型的情况下可以使用2个参数的重载方法,比如:

setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素 
setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22SP 
setTextSize(TypedValue.COMPLEX_UNIT_DIP,22);//22DIP

你可能感兴趣的:(android,android,studio,ide)