2017-02-16 2 views
1

В моей работе наш пользовательский интерфейс всегда маркирует размер шрифта textView (aTextView) в sp (или px); В нашем случае другой вид (как bView) находится ниже aTextView, фактическая высота aTextView будет влиять на положение bView, что изменит общий макет с небольшой разницей.TextView real height with wrap_content single line

Я хочу знать реальную высоту текстового вида в другом текстовом формате, когда мы используем wrap_content, чтобы установить layout_height TextView. Мы можем обсудить эту проблему простым способом, что 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

Из моего опыта, TextView с текстом размером 16sp/16dp будет иметь высоту 18dp, т.е. 16dp + 1 dp отступы сверху и снизу.

Помните, что это всего лишь оценка. Фактическая высота может или не может зависеть от множества других факторов, таких как шрифт и шрифт и т. Д. Чтобы проверить, вы можете просто поместить квадрат View рядом с ним в свой макет или проверить по коду.

Я отправлю сюда, если я случайно найду какую-либо официальную информацию о том, как меняются размеры TextViews.

+0

yean, я измерил его как раз в вашем заключении, а как оценку. Подождите, пока ваша официальная информация мне нужна. Я нашел ее в течение длительного времени. – lichao

0

Использование макета Constraint может решить вашу проблему. Попробуйте. Image

TextView B вертикально привязан к ImageView, и вы можете сделать наоборот. Ограниченный элемент автоматически изменит размер в соответствии с элементом, который он ограничен.