gpt4 book ai didi

com.koolearn.klibrary.text.view.ZLTextPage类的使用及代码示例

转载 作者:知者 更新时间:2024-03-13 11:56:55 27 4
gpt4 key购买 nike

本文整理了Java中com.koolearn.klibrary.text.view.ZLTextPage类的一些代码示例,展示了ZLTextPage类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZLTextPage类的具体详情如下:
包路径:com.koolearn.klibrary.text.view.ZLTextPage
类名称:ZLTextPage

ZLTextPage介绍

暂无

代码示例

代码示例来源:origin: Jiangzqts/EpubRead

private ZLTextWordCursor findStartOfPrevousPage(ZLTextPage page, ZLTextWordCursor end) {
  if (twoColumnView()) {
    end = findStart(page, end, SizeUnit.PIXEL_UNIT, page.getTextHeight());
  }
  end = findStart(page, end, SizeUnit.PIXEL_UNIT, page.getTextHeight());
  return end;
}

代码示例来源:origin: ydcx/KooReader

public final synchronized void gotoPosition(int paragraphIndex, int wordIndex, int charIndex) {
  if (myModel != null && myModel.getParagraphsNumber() > 0) {
    Application.getViewWidget().reset();
    myCurrentPage.moveStartCursor(paragraphIndex, wordIndex, charIndex);
    myPreviousPage.reset();
    myNextPage.reset();
    preparePaintInfo(myCurrentPage);
    if (myCurrentPage.isEmptyPage()) {
      turnPage(true, ScrollingMode.NO_OVERLAPPING, 0);
    }
  }
}

代码示例来源:origin: ydcx/KooReader

private final synchronized void gotoPositionByEnd(int paragraphIndex, int wordIndex, int charIndex) {
  if (myModel != null && myModel.getParagraphsNumber() > 0) {
    myCurrentPage.moveEndCursor(paragraphIndex, wordIndex, charIndex);
    myPreviousPage.reset();
    myNextPage.reset();
    preparePaintInfo(myCurrentPage);
    if (myCurrentPage.isEmptyPage()) {
      turnPage(false, ScrollingMode.NO_OVERLAPPING, 0);
    }
  }
}

代码示例来源:origin: Jiangzqts/EpubRead

public synchronized void setModel(ZLTextModel model) { // 3次 2个set null(footnote) 加载完后 1次
  myCursorManager = model != null ? new CursorManager(model, getExtensionManager()) : null; // 位置管理 最多有200个cursor在缓存中
  mySelection.clear();
  myHighlightings.clear();
  myModel = model; // 设置model
  myCurrentPage.reset(); // 重置页面
  myPreviousPage.reset();
  myNextPage.reset();
  /**
   * 按\r\n的方式得到段落结构,Model添加数据的时候,是以段为单位的
   */
  if (myModel != null) {
    final int paragraphsNumber = myModel.getParagraphsNumber(); // 得到总的段落数 txt只有1段或几段,GDG2014 RHYDYBS1329
    if (paragraphsNumber > 0) {
      /**
       * 把Model的第一段的游标传给现在的Page,以后就可以自己找了
       */
      myCurrentPage.moveStartCursor(myCursorManager.get(0));
    }
  }
  Application.getViewWidget().reset(); // 重置,然后接着执行KooReaderApp中的渲染方法,不太需要
}

代码示例来源:origin: Jiangzqts/EpubRead

private synchronized void preparePaintInfo(ZLTextPage page) {
  page.setSize(getTextColumnWidth(), getTextAreaHeight(), twoColumnView(), page == myPreviousPage);
            break;
          case ScrollingMode.KEEP_LINES:
            page.findLineFromEnd(startCursor, myOverlappingValue);
            break;
          case ScrollingMode.SCROLL_LINES:
            page.findLineFromStart(startCursor, myOverlappingValue);
            if (startCursor.isEndOfParagraph()) {
              startCursor.nextParagraph();
            page.findPercentFromStart(startCursor, myOverlappingValue);
            break;
          page.findLineFromStart(startCursor, 1);
          final ZLTextWordCursor endCursor = new ZLTextWordCursor();
          buildInfos(page, startCursor, endCursor);
          if (!page.isEmptyPage() && (myScrollingMode != ScrollingMode.KEEP_LINES || !endCursor.samePositionAs(page.EndCursor))) {
            page.StartCursor.setCursor(startCursor);
            page.EndCursor.setCursor(endCursor);
          case ScrollingMode.KEEP_LINES: {
            ZLTextWordCursor endCursor = new ZLTextWordCursor();
            page.findLineFromStart(endCursor, myOverlappingValue);
            if (!endCursor.isNull() && endCursor.samePositionAs(page.EndCursor)) {
              page.findLineFromEnd(endCursor, 1);
            break;

代码示例来源:origin: ydcx/KooReader

public synchronized final void turnPage(boolean forward, int scrollingMode, int value) {
  preparePaintInfo(myCurrentPage);
  myPreviousPage.reset();
  myNextPage.reset();
  if (myCurrentPage.PaintState == PaintStateEnum.READY) {
    myCurrentPage.PaintState = forward ? PaintStateEnum.TO_SCROLL_FORWARD : PaintStateEnum.TO_SCROLL_BACKWARD;
    myScrollingMode = scrollingMode;
    myOverlappingValue = value;
  }
}

代码示例来源:origin: ydcx/KooReader

private void buildInfos(ZLTextPage page, ZLTextWordCursor start, ZLTextWordCursor result) {
  result.setCursor(start);
  int textAreaHeight = page.getTextHeight();
  page.LineInfos.clear();
  page.Column0Height = 0;
      textAreaHeight -= info.Height + info.Descent;
      if (textAreaHeight < 0 && page.LineInfos.size() > page.Column0Height) {
        if (page.Column0Height == 0 && page.twoColumnView()) {
          textAreaHeight = page.getTextHeight();
          textAreaHeight -= info.Height + info.Descent;
          page.Column0Height = page.LineInfos.size();
      page.LineInfos.add(info);
      if (textAreaHeight < 0) {
        if (page.Column0Height == 0 && page.twoColumnView()) {
          textAreaHeight = page.getTextHeight();
          page.Column0Height = page.LineInfos.size();
        } else {
      if (page.Column0Height == 0 && page.twoColumnView() && !page.LineInfos.isEmpty()) {
        textAreaHeight = page.getTextHeight();
        page.Column0Height = page.LineInfos.size();

代码示例来源:origin: Jiangzqts/EpubRead

private void prepareTextLine(ZLTextPage page, ZLTextLineInfo info, int x, int y, int columnIndex) {
  y = Math.min(y + info.Height, getTopMargin() + page.getTextHeight() - 1);
  x += info.LeftIndent;
  final int maxWidth = page.getTextWidth();
  switch (getTextStyle().getAlignment()) {
    case ZLTextAlignmentType.ALIGN_RIGHT:

代码示例来源:origin: ydcx/KooReader

final int maxWidth = page.getTextWidth() - storedStyle.getRightIndent(metrics());
info.LeftIndent = storedStyle.getLeftIndent(metrics());
if (isFirstLine && storedStyle.getAlignment() != ZLTextAlignmentType.ALIGN_CENTER) {

代码示例来源:origin: ydcx/KooReader

private synchronized void preparePaintInfo(ZLTextPage page) {
  page.setSize(getTextColumnWidth(), getTextAreaHeight(), twoColumnView(), page == myPreviousPage);
            break;
          case ScrollingMode.KEEP_LINES:
            page.findLineFromEnd(startCursor, myOverlappingValue);
            break;
          case ScrollingMode.SCROLL_LINES:
            page.findLineFromStart(startCursor, myOverlappingValue);
            if (startCursor.isEndOfParagraph()) {
              startCursor.nextParagraph();
            page.findPercentFromStart(startCursor, myOverlappingValue);
            break;
          page.findLineFromStart(startCursor, 1);
          final ZLTextWordCursor endCursor = new ZLTextWordCursor();
          buildInfos(page, startCursor, endCursor);
          if (!page.isEmptyPage() && (myScrollingMode != ScrollingMode.KEEP_LINES || !endCursor.samePositionAs(page.EndCursor))) {
            page.StartCursor.setCursor(startCursor);
            page.EndCursor.setCursor(endCursor);
          case ScrollingMode.KEEP_LINES: {
            ZLTextWordCursor endCursor = new ZLTextWordCursor();
            page.findLineFromStart(endCursor, myOverlappingValue);
            if (!endCursor.isNull() && endCursor.samePositionAs(page.EndCursor)) {
              page.findLineFromEnd(endCursor, 1);
            break;

代码示例来源:origin: ydcx/KooReader

protected synchronized void preparePaintInfo() {
  myPreviousPage.reset();
  myNextPage.reset();
  preparePaintInfo(myCurrentPage);
}

代码示例来源:origin: ydcx/KooReader

public synchronized void setModel(ZLTextModel model) { // 3次 2个set null(footnote) 加载完后 1次
  myCursorManager = model != null ? new CursorManager(model, getExtensionManager()) : null; // 位置管理 最多有200个cursor在缓存中
  mySelection.clear();
  myHighlightings.clear();
  myModel = model; // 设置model
  myCurrentPage.reset(); // 重置页面
  myPreviousPage.reset();
  myNextPage.reset();
  /**
   * 按\r\n的方式得到段落结构,Model添加数据的时候,是以段为单位的
   */
  if (myModel != null) {
    final int paragraphsNumber = myModel.getParagraphsNumber(); // 得到总的段落数 txt只有1段或几段,GDG2014 RHYDYBS1329
    if (paragraphsNumber > 0) {
      /**
       * 把Model的第一段的游标传给现在的Page,以后就可以自己找了
       */
      myCurrentPage.moveStartCursor(myCursorManager.get(0));
    }
  }
  Application.getViewWidget().reset(); // 重置,然后接着执行KooReaderApp中的渲染方法,不太需要
}

代码示例来源:origin: Jiangzqts/EpubRead

private void buildInfos(ZLTextPage page, ZLTextWordCursor start, ZLTextWordCursor result) {
  result.setCursor(start);
  int textAreaHeight = page.getTextHeight();
  page.LineInfos.clear();
  page.Column0Height = 0;
      textAreaHeight -= info.Height + info.Descent;
      if (textAreaHeight < 0 && page.LineInfos.size() > page.Column0Height) {
        if (page.Column0Height == 0 && page.twoColumnView()) {
          textAreaHeight = page.getTextHeight();
          textAreaHeight -= info.Height + info.Descent;
          page.Column0Height = page.LineInfos.size();
      page.LineInfos.add(info);
      if (textAreaHeight < 0) {
        if (page.Column0Height == 0 && page.twoColumnView()) {
          textAreaHeight = page.getTextHeight();
          page.Column0Height = page.LineInfos.size();
        } else {
      if (page.Column0Height == 0 && page.twoColumnView() && !page.LineInfos.isEmpty()) {
        textAreaHeight = page.getTextHeight();
        page.Column0Height = page.LineInfos.size();

代码示例来源:origin: ydcx/KooReader

private void prepareTextLine(ZLTextPage page, ZLTextLineInfo info, int x, int y, int columnIndex) {
  y = Math.min(y + info.Height, getTopMargin() + page.getTextHeight() - 1);
  x += info.LeftIndent;
  final int maxWidth = page.getTextWidth();
  switch (getTextStyle().getAlignment()) {
    case ZLTextAlignmentType.ALIGN_RIGHT:

代码示例来源:origin: Jiangzqts/EpubRead

final int maxWidth = page.getTextWidth() - storedStyle.getRightIndent(metrics());
info.LeftIndent = storedStyle.getLeftIndent(metrics());
if (isFirstLine && storedStyle.getAlignment() != ZLTextAlignmentType.ALIGN_CENTER) {

代码示例来源:origin: Jiangzqts/EpubRead

public final synchronized void gotoPosition(int paragraphIndex, int wordIndex, int charIndex) {
  if (myModel != null && myModel.getParagraphsNumber() > 0) {
    Application.getViewWidget().reset();
    myCurrentPage.moveStartCursor(paragraphIndex, wordIndex, charIndex);
    myPreviousPage.reset();
    myNextPage.reset();
    preparePaintInfo(myCurrentPage);
    if (myCurrentPage.isEmptyPage()) {
      turnPage(true, ScrollingMode.NO_OVERLAPPING, 0);
    }
  }
}

代码示例来源:origin: Jiangzqts/EpubRead

private final synchronized void gotoPositionByEnd(int paragraphIndex, int wordIndex, int charIndex) {
  if (myModel != null && myModel.getParagraphsNumber() > 0) {
    myCurrentPage.moveEndCursor(paragraphIndex, wordIndex, charIndex);
    myPreviousPage.reset();
    myNextPage.reset();
    preparePaintInfo(myCurrentPage);
    if (myCurrentPage.isEmptyPage()) {
      turnPage(false, ScrollingMode.NO_OVERLAPPING, 0);
    }
  }
}

代码示例来源:origin: Jiangzqts/EpubRead

public synchronized final void turnPage(boolean forward, int scrollingMode, int value) {
  preparePaintInfo(myCurrentPage);
  myPreviousPage.reset();
  myNextPage.reset();
  if (myCurrentPage.PaintState == PaintStateEnum.READY) {
    myCurrentPage.PaintState = forward ? PaintStateEnum.TO_SCROLL_FORWARD : PaintStateEnum.TO_SCROLL_BACKWARD;
    myScrollingMode = scrollingMode;
    myOverlappingValue = value;
  }
}

代码示例来源:origin: ydcx/KooReader

if (index == page.Column0Height) {
  y = getTopMargin();
  x += page.getTextWidth() + getSpaceBetweenColumns();
  columnIndex = 1;
if (index == page.Column0Height) {
  y = getTopMargin();
  x += page.getTextWidth() + getSpaceBetweenColumns();

代码示例来源:origin: ydcx/KooReader

private ZLTextWordCursor findStartOfPrevousPage(ZLTextPage page, ZLTextWordCursor end) {
  if (twoColumnView()) {
    end = findStart(page, end, SizeUnit.PIXEL_UNIT, page.getTextHeight());
  }
  end = findStart(page, end, SizeUnit.PIXEL_UNIT, page.getTextHeight());
  return end;
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com