Siv*_*mar 6 java android textview
我有一些文字将被放入TextView.我这样做了setText().
现在我需要找到文本占用的行数或高度TextView.我尝试过使用getHeight(),但它总是返回0.
反正有没有得到文本的高度TextView?
Lum*_*mis 13
因为只有在布局完成后才知道此大小,因此一种方法是创建自定义文本视图并使用onSizeChanged方法.另一种方式是这样的:
final TextView tv = (TextView) findViewById(R.id.myTextView);
ViewTreeObserver vto = tv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Toast.makeText(MyActivity.this, tv.getWidth() + " x " + tv.getHeight(), Toast.LENGTH_LONG).show();
tv.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
Run Code Online (Sandbox Code Playgroud)
我在这里找到的代码:如何检索视图的尺寸?
正如约翰所指出的,你将无法在setText之后立即获得高度.我不确定在TextView上使用getHeight()会对你有多大帮助.视图的高度不仅取决于视图中可见文本的高度,还取决于TextView所在的视图组/布局.如果视图组告诉TextView最大化高度,getHeight()将无处可见如果你等到文本呈现后.
我看到有很多方法可以做到:
不要使用Textviews维度.使用TextView.getPaint()获取TextViews Paint,然后计算宽度和高度
矩形边界; paint.getTextBounds(text,0,text.length(),bounds);
您现在将拥有范围内的尺寸.您现在可以使用paint.breakText来查看您在一行中可以容纳多少文本.可能过于麻烦并且不能保证(对于我未经训练的眼睛)与TextView使用的逻辑相同.
| 归档时间: |
|
| 查看次数: |
22046 次 |
| 最近记录: |