我打算給你一些代碼,它顯示了你所要求的完全相反。下面的代碼縮小了一行文字,直到它符合所需的區域。但有一個基本的想法:獲取textView的顏色,然後進行測量。調整尺寸並重新測量textView.getPaint()。measureText(「Your text」)
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();
}
是的,如果它是恆定的,只需使用圖像。 – 2014-12-07 06:26:05