0

在 中layout,我有一个textviewwith height wrap_content。是text size10 sp。所以我想知道文本的确切高度。

我想知道的原因height是,我想使用图像跨度bitmap在文本视图中显示一些图像。并且解码方法需要目标宽度和高度。

可能吗?谢谢。

4

4 回答 4

0

您可以覆盖 onWindowFocusChanged 方法,在这里您可以获得视图的实际高度和宽度。

@Override
public void onWindowFocusChanged (boolean hasFocus) {
        // the height will be set at this point
        int textViewHeigth = text.getHeigth();
}

这里有一些帖子: getHeight 为所有 Android UI 对象 和另一个返回 0你如何检索视图的尺寸?Getheight() 和 Getwidth() 总是返回零

于 2013-11-02T16:18:45.207 回答
0

TextView 中有两个 API 可以使用。它们是 getTextSize 和 getLineHeight。感谢所有的回答和帮助。

于 2013-11-08T14:06:16.523 回答
0

在布局的活动onCreate()覆盖方法中。onGlobalLayout在计算所有视图后调用此方法。在那里获取 textView 的高度。
假设您的 TextView 在 RelativeLayout

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
relativeLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        relativeLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
        TextView text = (TextView) findViewById(R.id.yourTextView);
        int textViewHeigth = text.getHeigth();

        //Do what you want
    }
});
于 2013-11-02T16:02:36.290 回答
0

您可以通过 textview 对象获取高度:

    TextView text = (TextView) findViewById(R.id.<ID_OF_TEXTVIEW_IN_LAYOUT);
    int textViewHeigth = text.getHeigth();
于 2013-11-02T09:01:09.740 回答