我使用Harism 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);
}
}
改变模式后,页面rects将会更新
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创建。任何帮助?
看来您的左侧纹理坐标不正确。这可能是卷曲库的另一个特征/缺陷。一些代码,指示您如何更改为双页模式将有所帮助。 –
@猪猪我已经更新了我的问题 –
这似乎很合理。如果在if(mViewMode == SHOW_TWO_PAGES)块的末尾将mPageRectLeft.right替换为mPageRectLeft.left,会发生什么? –