我的部分应用在TextView
中显示一个5个字符的单词,该单词应填满整个屏幕。下面列出的问题解决了同样的问题:
How to adjust text font size to fit textview
Have TextView scale its font size to fill parent?
Text size and different android screen sizes
但是,由于我的案例只需要一个5个字符的字来填充整个屏幕,有没有更简单的方法呢?如果没有,那么简单地提供drawable
资源是否可行(假设5个字符的字总是相同的)?
谢谢!
答案 0 :(得分:1)
我将给你一些代码,显示与你要求的完全相反的代码。下面的代码缩小了一行文本,直到它适合所需的区域。但是有一个基本的想法:获取textView的绘制然后测量它。调整大小并重新测量它,例如textView.getPaint()。measureText(“你的文字”)
public static float calculateTextSizeToFit(TextView textView, String desiredText, int limitSpSize, float desiredTxtPxSize) {
Paint measurePaint = new Paint(textView.getPaint());
measurePaint.setTextSize(desiredTxtPxSize);
float pWidth = measurePaint.measureText(desiredText);
float labelWidth = textView.getWidth();
int maxLines = textView.getMaxLines();
while (labelWidth > 0 && pWidth/maxLines > labelWidth-20) {
float textSize = measurePaint.getTextSize();
measurePaint.setTextSize(textSize-1);
pWidth = measurePaint.measureText(desiredText);
if (textSize < TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, limitSpSize,
textView.getContext().getResources().getDisplayMetrics())) break;
}
return measurePaint.getTextSize();
}