Android:在布局中获得可用宽度

Android:在布局中获得可用宽度,android,view,width,Android,View,Width,我想知道是否有一种方法可以找出布局中视图的可用空间 更精确一点:在活动中,两个文本视图并排显示。因为第二个包含了很多文本,我想检查一下,这个文本是否可以显示在屏幕上,或者它是否太大了。如果是这样的话,我将显示一个较小版本的文本,因为Android默认情况下不会在多行上显示该文本。 目前我使用的代码如下: WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); Display display =

我想知道是否有一种方法可以找出布局中视图的可用空间

更精确一点:在活动中,两个文本视图并排显示。因为第二个包含了很多文本,我想检查一下,这个文本是否可以显示在屏幕上,或者它是否太大了。如果是这样的话,我将显示一个较小版本的文本,因为Android默认情况下不会在多行上显示该文本。 目前我使用的代码如下:

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
Point screenSize = new Point();
display.getSize(screenSize);
int screenWidth = screenSize.x;

if (tvTitle.getWidth() + tvDescription.getWidth() > screenWidth) {
    tvDescrition.setText(getString(R.string.descritption_short));
}
但这不起作用:宽度通常比屏幕小,所以使用长版本。但是:文本没有完全显示,最后的单词总是缺失

我想问题是,布局使用了填充,因此减少了实际可用的空间


那么如何解决这个问题呢?任何想法都是非常受欢迎的:-

您可以以像素为单位测量文本字符串的宽度。使用此方法:


如果超过总屏幕宽度-水平边距-水平填充,则您可以选择简短的说明。

谢谢!我脑海中出现了两个问题:为什么使用measureText而不是TextView.getWidth?如何得到元素的边距?