I have two szenarios:
First:
textView.setTextSize(getResources().getDimension(R.dimen.defaultTextSize));
Second in xml:
android:textSize="@dimen/defaultTextSize"
in values/dimen.xml i have declared defaultTextSize with 20sp
In my first case the text is much bigger (and different in some screenresulutions) than in my second case. Why? Have I done a mistake?
setTextSize()
takes unit as pixel
Use this
public float pixelsToSp(float px)
{
float scaledDensity = _context.getResources().getDisplayMetrics().scaledDensity;
return px/scaledDensity;
}
textView.setTextSize(pixelsToSp(getResources().getDimension(R.dimen.defaultTextSize)));
or
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.defaultTextSize))