【问题标题】:Using breakText, what value should maxWidth have?使用 breakText,maxWidth 应该有什么值?
【发布时间】:2013-11-12 17:32:09
【问题描述】:

在我当前的代码中,我正在获取屏幕的宽度并在我的 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 应该输入什么吗?

【问题讨论】:

标签: android paint


【解决方案1】:

记住屏幕密度和设备上文本的比例因子。您应该将屏幕宽度(以 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-17
    • 2023-04-02
    • 2011-04-15
    • 2017-04-10
    • 2012-03-19
    • 2018-05-12
    • 2018-12-11
    • 1970-01-01
    相关资源
    最近更新 更多