如何知道具有特定文本大小的文本视图中文本的高度?

时间:2013-11-02 08:25:24

标签: android textview height

layout中,我有textview height wrap_contenttext size是10 sp。所以我想知道文本的确切高度。

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

有可能吗?感谢。

4 个答案:

答案 0 :(得分:0)

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

    TextView text = (TextView) findViewById(R.id.<ID_OF_TEXTVIEW_IN_LAYOUT);
    int textViewHeigth = text.getHeigth();

答案 1 :(得分: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
    }
});

答案 2 :(得分:0)

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

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

这里有一些帖子给你: getHeight returns 0 for all Android UI objects  另一个How do you to retrieve dimensions of a view? Getheight() and Getwidth() always return zero

答案 3 :(得分:0)

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