获得高度和填充尺寸

时间:2015-02-23 09:15:34

标签: android android-layout textview

我希望看到textview的高度和textview的填充之和。 我用方法设置填充:

textView.setPadding(0,x,0,x);

但如果我使用

textView.getHeight();

我会收到0。

如果我使用

ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) textView.getLayoutParams();
Log.d(TAG,params.height+"");

我会收到-2,这是不可能的。

我该怎么办?

编辑:这是XML代码

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/try"
            android:textColor="#fff"
            android:id="@+id/tv"
            android:gravity="center_horizontal" />

Edit2:我使用此代码设置文本视图的宽度,它可以正常工作。

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
final int width = size.x;
final int height = size.y;
ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) textView.getLayoutParams();
params.width = width/2;

我不想以编程方式设置高度因为我设置了填充。但我想得到这个措施

EDIT3:

我尝试使用

Rect bounds = new Rect();
textView.getPaint().getTextBounds(textView.getText(), 0,textView.getText().length(), bounds); 
bounds.height(); //This should give you the height of the wrapped_content
正如Slartibartfast告诉我的那样。但是有一个问题:

可能这是文本大小的测量......但它不是textview高度的正确测量。我试着将这个数字和2个填充度量相加并尝试设置:

params.height = bounds.height() + 2*x;

视图小于没有这行代码的视图。

1 个答案:

答案 0 :(得分:0)

看看:How to retrieve the dimensions of a view?

基本上只有在布局完成后才知道大小,一种方法是创建自定义文本视图并使用onSizeChanged方法

修改

怎么样

Rect bounds = new Rect();
textView.getPaint().getTextBounds(textView.getText(), 0,textView.getText().length(), bounds); 
bounds.height(); //This should give you the height of the wrapped_content