setTextSize - 将文本设置为大于预期

时间:2014-04-06 15:19:04

标签: android eclipse text text-size

我使用此代码将我的文本设置为一个sp更大但是它增加了太多的大小......

public void doThis(MenuItem item){
        size = text.getTextSize();
        text.setTextSize(TypedValue.COMPLEX_UNIT_SP, (float) (size + 1));

    }

我希望它只添加一个sp ...

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

因为您获得了像素大小并将其用于转换为sp。首先,您需要将大小转换回sp:

float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
float sizeNew = text.getTextSize() / scaledDensity; // obtain current size in sp
sizeNew += 1f; // add 1 sp
text.setTextSize(TypedValue.COMPLEX_UNIT_SP, sizeNew); // set new size in sp

答案 1 :(得分:1)

您从getTextSize();

获取像素而不是sp

试试这个:

text.setTextSize(TypedValue.COMPLEX_UNIT_SP, (text.getSize() / getResources().getDisplayMetrics().scaledDensity) + 1);

答案 2 :(得分:0)

您可以使用此功能将像素更改为sp,您可以看到整个线程here

public static float pixelsToSp(Context context, Float px) {
float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
return px/scaledDensity;

}