我有应设置的TextView与指定宽度的文本。它需要计算文字的大小,以适应它到TextView的。
I have a text that should be set to TextView with specified width. It needs to calculate the text size to fit it into TextView.
在换句话说:有没有办法使文本符合TextView的区域,像ImageView的规模型功能
In other words: Is there a way to fit text into TextView area, like the ImageView scale type feature?
如果它是空间的大小的文本需要你的后那么下面可能会有所帮助:
If it is the Size of the space the Text takes your after then the following might help:
Paint paint = new Paint();
Rect bounds = new Rect();
int text_height = 0;
int text_width = 0;
paint.setTypeface(Typeface.DEFAULT);// your preference here
paint.setTextSize(25);// have this the same as your text size
String text = "Some random text";
paint.getTextBounds(text, 0, text.length(), bounds);
text_height = bounds.height();
text_width = bounds.width();
编辑(评论后): 使用上述相反的:
Edit (after comment): Use the above in reverse:
int text_height = 50;
int text_width = 200;
int text_check_w = 0;
int text_check_h = 0;
int incr_text_size = 1;
boolean found_desired_size = true;
while (found_desired_size){
paint.setTextSize(incr_text_size);// have this the same as your text size
String text = "Some random text";
paint.getTextBounds(text, 0, text.length(), bounds);
text_check_h = bounds.height();
text_check_w = bounds.width();
incr_text_size++;
if (text_height == text_check_h && text_width == text_check_w){
found_desired_size = false;
}
}
return incr_text_size; // this will be desired text size from bounds you already have
//此方法可以进行调整了一下,但给你的,是你可以做的想法
//this method may be tweaked a bit, but gives you an idea on what you can do