나는 Harris https://github.com/harism/android_page_curl에 의해 페이지 컬 애니메이션을 사용하고 있습니다. 이미지가 아닌 텍스트를 그리는 것으로이 프로젝트를 테스트하고 있습니다. 이 두 페이지 모드 일 때 harism에 의한 페이지 컬링, 두 페이지 모드에서 텍스트가 정상적으로 표시되지 않음
그러나 (가로) 결과는 다음과 같은 : 그것은 한 페이지 모드 일 때, 그것은 일반 텍스트를 보여주고있다
문제는 왼쪽에있는 텍스트의 상태입니다. 은 화면 방향 변경 페이지 모드 제어 onSizeChanged하는 방법이있다 : 모드를 변경 한 후
@Override
public void onSizeChanged(int w, int h) {
if (w > h) {
mCurlView.setViewMode(CurlView.SHOW_TWO_PAGES);
mCurlView.setMargins(.1f, .05f, .1f, .05f);
} else {
mCurlView.setViewMode(CurlView.SHOW_ONE_PAGE);
mCurlView.setMargins(.1f, .1f, .1f, .1f);
}
}
이 페이지의 구형은
private void updatePageRects() { if (mViewRect.width() == 0 || mViewRect.height() == 0) { return; } else if (mViewMode == SHOW_ONE_PAGE) { mPageRectRight.set(mViewRect); mPageRectRight.left += mViewRect.width() * mMargins.left; mPageRectRight.right -= mViewRect.width() * mMargins.right; mPageRectRight.top += mViewRect.height() * mMargins.top; mPageRectRight.bottom -= mViewRect.height() * mMargins.bottom; mPageRectLeft.set(mPageRectRight); mPageRectLeft.offset(-mPageRectRight.width(), 0); int bitmapW = (int) ((mPageRectRight.width() * mViewportWidth)/mViewRect .width()); int bitmapH = (int) ((mPageRectRight.height() * mViewportHeight)/mViewRect .height()); mObserver.onPageSizeChanged(bitmapW, bitmapH); } else if (mViewMode == SHOW_TWO_PAGES) { mPageRectRight.set(mViewRect); mPageRectRight.left += mViewRect.width() * mMargins.left; mPageRectRight.right -= mViewRect.width() * mMargins.right; mPageRectRight.top += mViewRect.height() * mMargins.top; mPageRectRight.bottom -= mViewRect.height() * mMargins.bottom; mPageRectLeft.set(mPageRectRight); mPageRectLeft.right = (mPageRectLeft.right + mPageRectLeft.left)/2; mPageRectRight.left = mPageRectLeft.right; int bitmapW = (int) ((mPageRectRight.width() * mViewportWidth)/mViewRect .width()); int bitmapH = (int) ((mPageRectRight.height() * mViewportHeight)/mViewRect .height()); mObserver.onPageSizeChanged(bitmapW, bitmapH); } }
이 프로젝트는 OpenGL/ES를 사용하여 만든 업데이트됩니다 . 어떤 도움이 필요합니까?
왼쪽의 텍스처 좌표가 올바르지 않은 것으로 보입니다. 컬 라이브러리의 또 다른 기능/버그 일 수 있습니다. 두 페이지 모드로 변경하는 방법을 나타내는 일부 코드가 도움이됩니다. –
@the 돼지 나는 나의 질문을 업데이트했다 –
그것은 아주 적당하게 보인다. 'if (mViewMode == SHOW_TWO_PAGES)'블록의 끝에서'mPageRectLeft.right'를'mPageRectLeft.left'로 바꾸면 어떻게 될까요? –