실제로 최종 높이를 계산하는 방법은 textView
입니다.실제로 TextView 높이를 측정하는 방법은 무엇입니까?
TextView의 높이 측정에 다음 방법을 시도했습니다.
public static int getHeight(Context context, String text, int textSize, int deviceWidth) {
EmojiTextView textView = new EmojiTextView(context);
textView.setText(text);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize);
int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(deviceWidth, View.MeasureSpec.AT_MOST);
int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
textView.measure(widthMeasureSpec, heightMeasureSpec);
float lineSpacingMulti = textView.getLineSpacingMultiplier();
float lineSpacingExtra = textView.getLineSpacingExtra();
float lineHeight = textView.getLineHeight();
Log.d(TAG, "getHeight: lineSpacingMulti" + lineSpacingMulti + ":lineSpacingExtra:" + lineSpacingExtra + ":lineHeight:" + lineHeight);
return textView.getMeasuredHeight();
}
나는 다음있어 로그 캣 결과 :
09-17 12:11:18.974 25729-25729/?: getHeight: lineSpacingMulti1.0:lineSpacingExtra:0.0:lineHeight:43.0
09-17 12:11:18.973 25729-25729/?: calculateDynamicTextSize: ME Height 58
라인의 높이가 43와 승수는 측정 텍스트의 높이가 58 이유 1보다입니다 간격 라인입니다 그렇다면?
을 알려주세요. 실제로 어떻게해야할까요? – pskink
@pskink 텍스트의 위쪽 및 아래쪽 패딩을 측정하고 있습니다. 그래서 두 개의 textView를 LinearLayout이나 하나의 textView와 하나의 ImageView에 넣으면 그 둘 사이의 공간은 똑같아 야합니다. – Kaushlendra
'TextView # setIncludeFontPadding'을 참조하십시오.하지만'LinearLayout'에서 두 개 이상을 병합하는 대신'TextView'를 사용하지 않으시겠습니까? – pskink