美文网首页
Code Snipe - 自动换行分隔字符串代码

Code Snipe - 自动换行分隔字符串代码

作者: Jaesoon | 来源:发表于2018-04-04 10:06 被阅读16次

    自动换行分隔字符串代码

    /** 
     * 自动分割文本 
     * @param content 需要分割的文本 
     * @param p  画笔,用来根据字体测量文本的宽度 
     * @param width 最大的可显示像素(一般为控件的宽度) 
     * @return 一个字符串数组,保存每行的文本 
     */  
    public String[] autoSplit(String content, TextPaint p, float width) {
        
        if (width <= 0) {
            return null;
        }
        int length = content.length();
        Rect bounds = new Rect();
        p.getTextBounds(content, 0, content.length(), bounds);
        float textWidth = bounds.width();
        if (textWidth <= width) {
            return new String[]{content};
        }
    
        int start = 0, end = 1, i = 0;
        int lines = (int) Math.ceil(textWidth / width); //计算行数
        String[] lineTexts = new String[lines];
        while (start < length && end < length) {
            if (p.measureText(content, start, end) >= width) {
                lineTexts[i++] = content.substring(start, end - 1);
                start = end - 1;
                end--;
            }
            end++;
        }
    
        if (i < lineTexts.length)
            lineTexts[i++] = content.substring(start, end);
    
        return lineTexts;
    }
    

    相关文章

      网友评论

          本文标题:Code Snipe - 自动换行分隔字符串代码

          本文链接:https://www.haomeiwen.com/subject/xltkhftx.html