调整TextView的大小以适合文本

| 我正在使用自定义视图来调整文本视图中文本的大小,以使其适合(我不想放大)。 我遇到的麻烦是,在更改文本大小时,不会重新测量textview本身。我一直在查看源代码,发现setTextSize()正在调用以下代码:
nullLayouts();
requestLayout();
invalidate();
所以应该重新测量。这可能是一个错误,因为它在2.3而不是1.6、1.5和2.1模拟器上正常工作。 这是一段代码,请注意textview是扩展的:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    if(w == 0 && h == 0) {
        setTextSize(TypedValue.COMPLEX_UNIT_PX, defaultSize);
    }

    updateView();
}

private void updateView() {
    int viewWidth = getViewWidth();
    float textWidth = getTextWidth();

    float textSize = textSize();
    while(textWidth > viewWidth && textSize >= MIN_TEXT_SIZE) {

        setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize-1);

        textSize = getTextSize();

        textWidth = getTextWidth();
    }
}
谁能给我提示正确的方向来解决这个问题?     
已邀请:
在您的xml文件中,编写以下代码。
<TextView
  android:layout_height=\"40dip\"
  android:layout_width=\"100dip\"/>
简而言之,在xml文件中设置TextView的固定大小。     

要回复问题请先登录注册