2013-01-11 7 views
5

Tôi có văn bản có tên là Hello bây giờ tôi cần áp dụng phông chữ cho điều này là 12 hoặc 18 ngay khi áp dụng phông chữ cho văn bản.Lấy chiều cao văn bản bao gồm kích thước phông chữ và đặt chiều cao đó

vì vậy bây giờ tôi cần phải có chiều cao văn bản bao gồm kích thước phông chữ bằng cách sử dụng sơn.

tôi đã thử với sơn như sau:

String finalVal ="Hello"; 

Paint paint = new Paint(); 
paint.setTextSize(18); 
paint.setTypeface(Typeface.SANS_SERIF); 
paint.setColor(Color.BLACK); 
paint.setStyle(Paint.Style.FILL); 

Rect result = new Rect(); 
// Measure the text rectangle to get the height 
paint.getTextBounds(finalVal, 0, finalVal.length(), result); 

Nhưng nó không làm việc, xin vui lòng giúp

EDIT

tôi đang cố gắng để thiết lập chiều cao của webview động dựa trên textheight tôi nhận được chiều cao văn bản cho một dòng như "Hello" nhưng nếu có hai dòng trong văn bản "My name is abc and my dads name is xyz and my moms name is 123" now its not getting the proper text height".

+0

chính xác những gì không hoạt động? –

+0

xin vui lòng xem chỉnh sửa của tôi – Goofy

+0

hm ... âm thanh lạ. Tại sao bạn cần phải làm điều đó? –

Trả lời

7

Hãy thử cách này:

String finalVal ="Hello"; 

Paint paint = new Paint(); 
paint.setTextSize(18); 
paint.setTypeface(Typeface.SANS_SERIF); 
paint.setColor(Color.BLACK); 
paint.setStyle(Paint.Style.FILL); 

Rect result = new Rect(); 
paint.getTextBounds(finalVal, 0, finalVal.length(), result); 

Log.d("WIDTH  :", String.valueOf(result.width())); 
Log.d("HEIGHT  :", String.valueOf(result.height())); 

Đây là kết quả:

WIDTH  : 40 
HEIGHT  : 14 

Nếu tôi đặt này,

String finalVal ="My name is abc and my dads name is xyz and my moms name is 123"; 

Output của tôi là:

WIDTH  : 559 
HEIGHT  : 18 
+0

cảm ơn bạn câu trả lời tôi đã làm điều này trước và tôi cũng nhận được câu trả lời tương tự nhưng chúng tôi đặt nó dựa trên chiều cao và chiều rộng của thiết bị, vì bạn có thể thấy từ chào và chiều cao dòng đa có nhiều sự khác biệt – Goofy

2

Bạn có thể lấy chiều cao văn bản từ số FontMetrics. Nó là hằng số cho một phông chữ và kích thước phông chữ cụ thể, bất kể chuỗi văn bản hiện tại là gì.

Paint.FontMetrics fm = mTextPaint.getFontMetrics(); 
float textHeight = fm.descent - fm.ascent; 
float lineHeight = fm.bottom - fm.top + fm.leading; 

Xem câu trả lời đầy đủ của tôi here. Tôi so sánh getTextBounds với FontMetrics trong câu trả lời đó.