2017-02-16 80 views
1

在我的工作中,我們的UI總是在sp(或px)中標記textView(aTextView)的字體大小;在我們的例子中,另一個視圖(如bView)低於aTextView,aTextView的實際高度會影響bView的位置;這將改變總體佈局而沒有什麼區別。TextView實際高度wrap_content單行

我想知道textview在不同textSize中的真實高度,當我們使用wrap_content設置TextView的layout_height。我們可以用1px = 1sp的簡單方式來討論這個問題。

+0

你檢查了這個:https://stackoverflow.com/questions/3779173/determining-the-size-of-an-android-view-at-runtime? – fiddler

回答

0

這裏用這種方法可以識別的TextView高度

public static int getHeight(Context context, String text, int textSize, int deviceWidth) { 
    TextView textView = new TextView(context); 
    textView.setText(text); 
    textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); 
    int widthMeasureSpec = MeasureSpec.makeMeasureSpec(deviceWidth, MeasureSpec.AT_MOST); 
    int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED); 
    textView.measure(widthMeasureSpec, heightMeasureSpec); 
    return textView.getMeasuredHeight(); 
} 

如果textSize像素給出,改變setTextSize()第一個參數中。

How to Measure TextView Height Based on Device Width and Font Size?

+0

感謝這種方法,我的意圖是知道填充頂部和底部的官方信息。 – lichao

0

複製從我的經驗,用16sp/16dp文字大小TextView將有18dp頂部和底部的高度,即16DP + 1DP填充。

請注意,這只是一個估計。實際高度可能取決於許多其他因素,如字體和字體大小等。要進行檢查,只需在佈局中放置一個方形視圖或通過代碼進行檢查即可。

如果我碰巧找到關於TextView大小的官方信息,我會在這裏發帖。

+0

嗯,我只是在你的結論中測量它,但作爲估計。等待你的官方信息,這是我所需要的,我已經找到了很長一段時間。 – lichao

0

使用約束佈局可以解決您的問題。試試看。 Image

TextView B垂直約束到ImageView,反之亦然。約束項目會根據受限制的項目自動調整大小。