我的 Activity 中有一个 textview 字段。它的字体大小为 16。
它的文本是通过代码设置的。假设我有一个大文本,它应该缩小这个数据(即字体大小减小)而不是转到下一行。我该怎么做?

<TextView android:id="@+id/textView" android:layout_width="400dp" android:layout_height="wrap_content" android:text="" android:textSize="16sp" />

最佳答案

我通过使用根据我的要求创建的以下方法得到了它。

private void autoScaleTextViewTextToHeight(TextView tv)
    {
        String s = tv.getText().toString();
        float currentWidth = tv.getPaint().measureText(s);

        float phoneDensity = this.getResources().getDisplayMetrics().density;

        while(currentWidth > (REQUIRED_WIDTH * phoneDensity)) {
            tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, tv.getTextSize() - 1.0f);
            currentWidth = tv.getPaint().measureText(s);
        }
    }

关于android - TextView 文本缩小到给定的宽度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5150480/

10-15 08:10