android.text.StaticLayout#getLineForOffset ( )源码实例Demo

下面列出了android.text.StaticLayout#getLineForOffset ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Telegram-FOSS   文件: TextSelectionHelper.java
protected int[] offsetToCord(int offset) {
    fillLayoutForOffset(offset, layoutBlock);

    StaticLayout layout = layoutBlock.layout;
    if (layout == null || offset > layout.getText().length()) {
        return tmpCoord;
    }
    int line = layout.getLineForOffset(offset);
    tmpCoord[0] = (int) (layout.getPrimaryHorizontal(offset) + layoutBlock.xOffset);
    tmpCoord[1] = layout.getLineBottom(line);
    tmpCoord[1] += layoutBlock.yOffset;
    return tmpCoord;
}
 
源代码2 项目: Telegram-FOSS   文件: TextSelectionHint.java
private void drawSelection(Canvas canvas, StaticLayout layout, int selectionStart, int selectionEnd) {
    int startLine = layout.getLineForOffset(selectionStart);
    int endLine = layout.getLineForOffset(selectionEnd);
    int startX = (int) layout.getPrimaryHorizontal(selectionStart);
    int endX = (int) layout.getPrimaryHorizontal(selectionEnd);
    if (startLine == endLine) {
        canvas.drawRect(startX, layout.getLineTop(startLine), endX, layout.getLineBottom(startLine), selectionPaint);
    } else {
        canvas.drawRect(startX, layout.getLineTop(startLine), layout.getLineWidth(startLine), layout.getLineBottom(startLine), selectionPaint);
        canvas.drawRect(0, layout.getLineTop(endLine), endX, layout.getLineBottom(endLine), selectionPaint);
        for (int i = startLine + 1; i < endLine; i++) {
            canvas.drawRect(0, layout.getLineTop(i), layout.getLineWidth(i), layout.getLineBottom(i), selectionPaint);
        }
    }
}
 
源代码3 项目: Telegram-FOSS   文件: LinkPath.java
public void setCurrentLayout(StaticLayout layout, int start, float yOffset) {
    currentLayout = layout;
    currentLine = layout.getLineForOffset(start);
    lastTop = -1;
    heightOffset = yOffset;
    if (Build.VERSION.SDK_INT >= 28) {
        int lineCount = layout.getLineCount();
        if (lineCount > 0) {
            lineHeight = layout.getLineBottom(lineCount - 1) - layout.getLineTop(lineCount - 1);
        }
    }
}
 
源代码4 项目: Telegram   文件: TextSelectionHelper.java
protected int[] offsetToCord(int offset) {
    fillLayoutForOffset(offset, layoutBlock);

    StaticLayout layout = layoutBlock.layout;
    if (layout == null || offset > layout.getText().length()) {
        return tmpCoord;
    }
    int line = layout.getLineForOffset(offset);
    tmpCoord[0] = (int) (layout.getPrimaryHorizontal(offset) + layoutBlock.xOffset);
    tmpCoord[1] = layout.getLineBottom(line);
    tmpCoord[1] += layoutBlock.yOffset;
    return tmpCoord;
}
 
源代码5 项目: Telegram   文件: TextSelectionHint.java
private void drawSelection(Canvas canvas, StaticLayout layout, int selectionStart, int selectionEnd) {
    int startLine = layout.getLineForOffset(selectionStart);
    int endLine = layout.getLineForOffset(selectionEnd);
    int startX = (int) layout.getPrimaryHorizontal(selectionStart);
    int endX = (int) layout.getPrimaryHorizontal(selectionEnd);
    if (startLine == endLine) {
        canvas.drawRect(startX, layout.getLineTop(startLine), endX, layout.getLineBottom(startLine), selectionPaint);
    } else {
        canvas.drawRect(startX, layout.getLineTop(startLine), layout.getLineWidth(startLine), layout.getLineBottom(startLine), selectionPaint);
        canvas.drawRect(0, layout.getLineTop(endLine), endX, layout.getLineBottom(endLine), selectionPaint);
        for (int i = startLine + 1; i < endLine; i++) {
            canvas.drawRect(0, layout.getLineTop(i), layout.getLineWidth(i), layout.getLineBottom(i), selectionPaint);
        }
    }
}
 
源代码6 项目: Telegram   文件: LinkPath.java
public void setCurrentLayout(StaticLayout layout, int start, float yOffset) {
    currentLayout = layout;
    currentLine = layout.getLineForOffset(start);
    lastTop = -1;
    heightOffset = yOffset;
    if (Build.VERSION.SDK_INT >= 28) {
        int lineCount = layout.getLineCount();
        if (lineCount > 0) {
            lineHeight = layout.getLineBottom(lineCount - 1) - layout.getLineTop(lineCount - 1);
        }
    }
}
 
源代码7 项目: TelePlus-Android   文件: LinkPath.java
public void setCurrentLayout(StaticLayout layout, int start, float yOffset) {
    currentLayout = layout;
    currentLine = layout.getLineForOffset(start);
    lastTop = -1;
    heightOffset = yOffset;
}
 
源代码8 项目: TelePlus-Android   文件: LinkPath.java
public void setCurrentLayout(StaticLayout layout, int start, float yOffset) {
    currentLayout = layout;
    currentLine = layout.getLineForOffset(start);
    lastTop = -1;
    heightOffset = yOffset;
}