Android 에서 텍스트 높이 를 가 져 오 는 세 가지 방법
본 고 는 문자 의 높이 를 정리 하고 정리 하 는 데 참고 자 료 는 statcoverflow 에서 나 온 대답 이다.구체 적 으로 아래 의 참고 링크 를 참조 하 시 오
텍스트 높이 를 가 져 오 는 세 가지 방법
매개 변수 해석
text:측 정 된 문자start:측 정 된 문자 의 시작 위치
만약 우리 가 string 의 정확 한 높이 를 얻 고 싶다 면,우 리 는 paint.getTextBounds()방법 을 통 해 실현 할 수 있다.
정확 한 높이 는 무엇 을 말 합 니까?예 를 들 어 아래 의 Happy new year 라 는 몇 개의 글 에서 세 단어의 높이 는 다르다.
높이 는 맨 위의 픽 셀 에서 맨 아래 픽 셀 의 높이 를 빼 는 것 과 같다.
그래서 세 사람의 높이 는 다르다.어떻게 이 세 개의 높이 를 얻 습 니까?paint.getTextBounds()방법 을 통 해
String temp = "Happy"; //
Rect rect = new Rect();
Paint paint = new Paint();
paint.getTextBounds(temp, 0, temp.length(), rect);
int height = rect.height();
얻 은 height 는 우리 목표 문자 의 최종 높이 입 니 다.하지만 주의해 야 할 것 은 위 에 있 는 Happy,new,year 라 는 세 단어의 높이 가 다르다 는 점 이다.
만약 우리 가 위의 세 단 어 를 같은 높이 로 처리 하고 싶다 면 어떻게 해 야 합 니까?
2 paint.getFontMetrics()
기능 설명
paint.getFontMetrics()는 텍스트 의 글꼴 높이 를 가 져 오 는 데 도움 을 줍 니 다.여기 서 말 하 는 것 은 글꼴 입 니 다.이 방법 을 사용 하면 텍스트 의 높이 가 같 습 니 다.
여기,fm 의 몇 가지 속성 은 주의해 야 합 니 다.우 리 는 먼저 아래 의 이 그림 을 보 겠 습 니 다.그림 의 line 1 line 2 line 3 에 주의 하 세 요.
그 중에서 line 1 은 상승 을 나타 낸다.line 2 는 baseline 을 나타 낸다.line 3 은 Decent 를 나타 낸다.아래 캡 처 는 내 가 demo 에서 얻 은 텍스트 의 높이 입 니 다.
Ascent 의 값 과 Decent 의 값 은 모두 baseLine 에 비해 서 입 니 다.baseLine 에서 출발 하여 위로 마이너스,아래로 플러스 입 니 다.
demo 코드 는 다음 과 같 습 니 다.
Paint paint = new Paint();
Paint.FontMetrics fm = paint.getFontMetrics();
float height1 = fm.descent - fm.ascent;
float height2 = fm.bottom - fm.top + fm.leading;
그 중에서 height 1 은 문자 의 높이 를 나타 내 고 height 2 는 줄 의 높이 를 나타 낸다.이 둘 의 차 이 를 주의해 라.fm.leading 은 줄 간격 을 표시 합 니 다.총결산
여기에 안 드 로 이 드 가 문자 높이 를 얻 는 세 가지 방법 에 관 한 글 이 소개 되 었 습 니 다.더 많은 안 드 로 이 드 가 문자 높이 를 얻 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
참고 자료:stackoverflow.com/questions/3..
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.