错误的维度-android

错误的维度-android,android,text,dimensions,Android,Text,Dimensions,我有一个edittext,它在布局中设置了textsize,另一个以编程方式设置了大小,但是应该是相同大小的东西不匹配,它更大。 对于性能,我不想使用: setTextSize(TypedValue.COMPLEX_UNIT_SP, 65); 这很有效。我想先计算一下,所以我试着: sm = (float) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 18, context.getResources().getDispla

我有一个edittext,它在布局中设置了textsize,另一个以编程方式设置了大小,但是应该是相同大小的东西不匹配,它更大。 对于性能,我不想使用:

setTextSize(TypedValue.COMPLEX_UNIT_SP, 65);
这很有效。我想先计算一下,所以我试着:

    sm = (float) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 18, context.getResources().getDisplayMetrics());

    sm = (float) context.getResources().getDimension(R.dimen.dsma);

两者都给我一个大字体。修理tnx

edit.setTextSize(18);
没有办法避免计算,因为它无论如何都完成了,一个简单的intfloat将被视为sp


pskink,tnx.

以及以后如何设置sm?请阅读edit.settextsizesm上的文档;它表示将默认文本大小设置为给定值,解释为缩放像素单位。此大小根据当前密度和用户字体大小首选项进行调整。确切地说:缩放像素,但您传递原始像素我认为它们是由函数转换的。。。那么你有解决办法了?
edit.settextsize(sm);
edit.setTextSize(18);