2011-02-18 8 views
7

주어진 글꼴 센더/센더 및 x 높이를 얻는 방법 ascender/descenderx-height ...내가 얻을 필요가

나는 센더와 전체 높이를 찾을 수 있습니다 다음 코드를 사용하여 :

descender_height = paint.descent(); 
total_height = descender_height - paint.ascent(); 
//ascender = ?; is this always equal to descender height? 
//x_height = ?; total_height - 2*descender_height ? 

감사합니다.

답변

5

나는 ascender와 descender 높이가 일반적으로 같을 것이라고 생각 하겠지만 모든 글꼴에 의존하지는 않습니다. 나는 x 높이에 직접가는 길을 실제로 볼 수는 없지만, 당신이 사용할 수있는 속임수는 아래처럼 될 것입니다. 또한 전체 높이에 대해 가장 높은 상승 자에서 가장 낮은 강하 자까지의 절대 거리에 대해 이야기하고 있습니까? 나는 또한 그것을 위해 뭔가를 포함시켰다. 나는이 나 자신을 테스트하지 않은,하지만 작동 (하지만 당신이 말한 것을 잘못 해석하고있어 경우 알려 주시기)해야합니다

// Assuming TextPaint/Paint tp; 
Rect bounds; 

// this will just retrieve the bounding rect for 'x' 
tp.getTextBounds("x", 0, 1, bounds); 
int xHeight = bounds.height(); 

Paint.FontMetrics metrics = tp.getFontMetrics(); 
int totalHeight = metrics.top - metrics.bottom; 
1

이 나를 위해 일 것입니다 :

Paint.FontMetrics fm = paint.getFontMetrics(); 
int totalHeight = (int)(fm.bottom - fm.top + .5f); 
관련 문제