为什么两个输出都打印84?第一个应该是84,第二个应该是220。如果我再按一次,两个输出都是220。

public void btnClick(View v) {
    System.out.println(textView1.getWidth());
    textView1.setTextSize(TypedValue.COMPLEX_UNIT_PX, 55);
    System.out.println(textView1.getWidth());
}

最佳答案

更改文本大小不会更改已测量的视图的大小。settextsize()将触发invalidate(),但这只会在将来触发ondraw()。视图将不再测量,其宽度和高度将保持不变。可以对视图调用requestLayout()以重新计算宽度和高度。
如果您只想在更改文本大小(根据其大小)后查看文本的大小,可以尝试http://developer.android.com/reference/android/graphics/Paint.html#getTextBounds(char[], int, int, android.graphics.Rect)

关于java - getWidth不更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11068086/

10-11 19:53