根据文本大小更改TextView的文本

时间:2013-02-09 13:44:26

标签: android resize textview

有没有简单的方法来更改TextView的文字以使其符合视图的大小?请注意,我想要截断文本或放置省略号,我想设置不同的文本。

例如,如果视图太小(这两个字符串都是资源),我想使用Experience:代替Exp:

我知道我可以“避免”为每个可能的屏幕尺寸编写自定义.xml布局文件,但我想尽可能避免这种情况。我已经在使用一些不同的布局文件,但仅适用于布局需要进行一些根本性改变以适应屏幕大小的情况。此外,在某些情况下,我希望能够动态设置TextView的文本,而这不能通过xml布局文件来完成。

我只对单行TextView和宽度感兴趣。

我能想到的唯一方法是使用自定义TextView子类,如果原始文本不适合使用后备文本,但我想知道是否有更简单的解决方案,最终,怎么能我可靠地计算某些文本是否符合TextView大小。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x;

if( textView.getWidth() > screenWidth ) {
    textView.setText("Exp:");
} else {
    textView.setText("Experience:");
}

我不确定你是否需要使用getWidth()或getMeasuredWidth(),所以如果它不起作用,请尝试第二个选项。

相关问题