调用TextView.setTextSize()异常。在调用setTextSize之后,如果我们得到getTextSize,则其返回的值比我们之前设置的值高得多。

这是我们正在做的:

zoomControl.setOnZoomInClickListener(new OnClickListener() {
    public void onClick(View view) {
        float size = mViewShabad.getTextSize() + 1;
        textView.setTextSize(size);
    }
});

有没有人见过这个?

最佳答案

此处的区别在于,在setTextSize(int size)方法中,默认情况下,单位类型为“sp”或“缩放的像素”。对于每个屏幕密度(ldpi,mdpi,hdpi),该值都是不同的像素尺寸。

另一方面,getTextSize()返回文本的实际像素尺寸。

您可以使用setTextSize(int unit, float size)指定单位类型。可以在TypedValue类中找到其常量值,但其中一些是:

TypedValue.COMPLEX_UNIT_PX   //Pixels

TypedValue.COMPLEX_UNIT_SP   //Scaled Pixels

TypedValue.COMPLEX_UNIT_DIP  //Device Independent Pixels

07-24 22:19