在我目前的代码中,我获取了屏幕的宽度,并在我的breakText中使用它作为maxWidth。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
Paint p = new Paint();
p.setTextSize(60);
p.setSubpixelText(true);
endChar = p.breakText(fullText, 0, endText, true, width, null);
这段代码并没有给出我想要的答案,它提供的字符比需要的多,但我想我错误地使用了maxWidth。有人可以解释一下应该在maxWidth中输入什么内容吗?
答案 0 :(得分:0)
请记住设备上文字的屏幕密度和比例因子。您应该用paledDensity将屏幕宽度除以px,以获得sp中的屏幕宽度。
看起来应该是这样的:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = (int)((float)size.x/metrics.scaledDensity);
Paint p = new Paint();
p.setTextSize(60);
p.setSubpixelText(true);
endChar = p.breakText(fullText, 0, endText, true, width, null);