1

In my current code i'm getting the width of the screen and using it in my breakText as the 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);

This code isn't giving me the desired answers, it is giving more characters than needed, but i guess I'm using the maxWidth wrongly. Can someone explain what should be entered in maxWidth?

4

1 回答 1

0

记住设备上文本的屏幕密度和比例因子。您应该将屏幕宽度(以 px 为单位)除以 scaledDensity 以获得以 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);
于 2013-11-12T09:32:09.783 回答