2014-03-02 4 views
3

나는 Harris https://github.com/harism/android_page_curl에 의해 페이지 컬 애니메이션을 사용하고 있습니다. 이미지가 아닌 텍스트를 그리는 것으로이 프로젝트를 테스트하고 있습니다. 이 두 페이지 모드 일 때 enter image description hereharism에 의한 페이지 컬링, 두 페이지 모드에서 텍스트가 정상적으로 표시되지 않음

그러나 (가로) 결과는 다음과 같은 : 그것은 한 페이지 모드 일 때, 그것은 일반 텍스트를 보여주고있다 enter image description here

문제는 왼쪽에있는 텍스트의 상태입니다. 은 화면 방향 변경 페이지 모드 제어 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를 사용하여 만든 업데이트됩니다 . 어떤 도움이 필요합니까?

+0

왼쪽의 텍스처 좌표가 올바르지 않은 것으로 보입니다. 컬 라이브러리의 또 다른 기능/버그 일 수 있습니다. 두 페이지 모드로 변경하는 방법을 나타내는 일부 코드가 도움이됩니다. –

+0

@the 돼지 나는 나의 질문을 업데이트했다 –

+0

그것은 아주 적당하게 보인다. 'if (mViewMode == SHOW_TWO_PAGES)'블록의 끝에서'mPageRectLeft.right'를'mPageRectLeft.left'로 바꾸면 어떻게 될까요? –

답변

0

라이브러리의 또 다른 버그 인 것 같습니다. GitHub 코멘트에 따르면이 코드는 2 페이지 기능과 관련하여 최근에 업데이트되었습니다. 저자에게 연락하여 수정 요청을하는 것이 좋습니다.

+0

이 프로젝트의 또 다른 구버전은 github.com/cags12/android_page_curl입니다. 왼쪽의 페이지가 올바른 것으로 표시됩니다. 이제 우리는 어떤 종류의 변화가 있었는지, 왼쪽 이미지가 잘못된 위치에 영향을 미쳤다는 것을 발견해야합니다. –

+0

좋아, 이제 어딘가에 있습니다. –