以编程方式获取文本视图的精确宽度(Android)

时间:2016-06-20 17:46:43

标签: java android textview width pixel

使用android,是否有人知道如何在屏幕上显示之前以像素为单位获取textview的确切宽度? (编程) 我在互联网上搜索了很多但我没有找到任何工作。

谢谢

我试过的帖子的链接:

    1. With a Paint
        With measure
          With density

  • 4 个答案:

    答案 0 :(得分:3)

    我认为你应该使用OnGlobalLayoutListener,它通常用于在绘制之前找出视图的高度和宽度。

    例如,

    yourTextView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    
        @Override
        public void onGlobalLayout() {
    
          yourTextView.getWidth();
    
        }
    });
    

    答案 1 :(得分:2)

    最好发送一些代码。然后我们可以帮助你更多。 但我认为你可以使用这些方法:

    yourText.measure(0, 0);
    

    然后是这些代码:

    int width = view.getMeasuredWidth();
    int height = view.getMeasuredHeight();
    

    答案 2 :(得分:0)

    试试这个。

    textView.setText("your text");
    textView.measure(0, 0);
    textView.getMeasuredWidth();
    textView.getMeasuredHeight();
    

    答案 3 :(得分:0)

    正如 Nargess 所说,您最好使用测量视图宽度和高度的方法,如下面的代码:

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    view.measure(size.x, size.y);
    int width = view.getMeasuredWidth();
    int height = view.getMeasuredHeight();