android - 调整 TextView 大小以适合文本

标签 android textview custom-component text-size

我正在开发一个自定义 View 以调整 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 的固定大小。

关于android - 调整 TextView 大小以适合文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662642/

相关文章:

android - 自动完成编辑文本android

android - 图片留给TextView,Textview应该居中

Android 自定义形状对话框

android - 添加页脚的最佳方法是什么,无论屏幕分辨率如何,页脚都位于底部?

java - 获取 xml 布局中项目的 ID

android - 如何在 Android 上查找每个应用程序的数据使用情况?

android - 如何在 chrome 应用程序中使用自动完成功能?

android - 字符串最多换行的 TextView

java - 自定义 JavaFX 8 对象

javascript - 如何在我的 Web 应用程序中添加第三方组件?