잡지, 책 등과 협력, 우리는 페이지의 불확 실한 양을 처리합니다.
프로젝트 Harism-Android-Page-Curl의 CurlActivity 클래스에있는 예에서 "스위치"를 사용하여 페이지를 제어합니다. 필자의 요구를 충족시키기 위해 필자는 페이지 수에 관계없이 "updatePage"메서드를 변경 한 다음 내 잡지를 더 적절하게 제어해야했습니다.
색인 | 페이지 왼쪽 | 페이지 오른쪽
0 | 0 | 1
1 | 2 | 3
2 | 4 | 4
3 | 6 | 7
4 | 8 | 9
세로 방향
지수 (미러링 같은 페이지에 "뒷면") | 페이지
0 | 0
1 | 1
2 | 2
3 | 3
4 | 4
....
먼저 따라서 방법 getPageCount을 변경해야,이 방식을 구현하려면 :
public int getPageCount() {
//return 5;
int pagesCount = 0;
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int wwidth = displaymetrics.widthPixels;
int hheight = displaymetrics.heightPixels;
if(wwidth > hheight){
if((mBitmapIds.length % 2) > 0)
pagesCount = (mBitmapIds.length/2) + 1;
else
pagesCount = mBitmapIds.length/2;
}else{
pagesCount = mBitmapIds.length;
}
return pagesCount;
}
이 페이지 카운터가 실제 페이지 수를 반환 할 수 있습니다.
그런 다음 메소드 updatePage을 변경, 아래의 코드를 준수합니다
public void updatePage(CurlPage page, int width, int height, int index) {
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int wwidth = displaymetrics.widthPixels;
int hheight = displaymetrics.heightPixels;
if(wwidth > hheight){
System.out.println("case landscape orientation...");
Bitmap front = loadBitmap(width, height, (index * 2));
Bitmap back = loadBitmap(width, height, (index * 2) + 1);
Matrix matrix = new Matrix();
matrix.preScale(-1.0f, 1.0f);
Bitmap mirroredBitmap = Bitmap.createBitmap(back, 0, 0, back.getWidth(), back.getHeight(), matrix, false);
page.setTexture(front, CurlPage.SIDE_FRONT);
page.setTexture(mirroredBitmap, CurlPage.SIDE_BACK);
}else{
System.out.println("case portrait orientation...");
Bitmap front = loadBitmap(width, height, index);
Bitmap back = loadBitmap(width, height, index);
page.setTexture(front, CurlPage.SIDE_FRONT);
page.setTexture(back, CurlPage.SIDE_BACK);
}}}
는 내가 도움을 바랍니다!
그리고 다시 한번 프레임 워크 Harism에 감사드립니다!
먼저 저에게 알려주세요. 당신이 안드로이드의 페이지 컬로 모든 것을 제공 해준 놀라운 작품에 감사드립니다. getBitmap() 메서드 내부에서 CurlView 클래스의 getCurrentIndex 메서드에서 mCurrentIndex를 표시하는 방법을 시도했지만 getCurrentIndex 메서드가 오른쪽 페이지의 개수를 역순으로 증가시키는 것으로 보입니다. 뒤집기 (즉, 페이지를 왼쪽에서 오른쪽으로 이동), 첫 페이지로 다시 돌아가는 것은 처음 값을 가져 오지 않습니다 (시작 위치에서 다시 가져 오지 못합니다). 여기서 나는 어디로 가고 있습니까? –
그래, 제 질문에 대한 답변을 Curl보기 클래스에서만 제안했듯이 getBitmap 메서드에서 페이지 인덱스를 가져 오는 중 틀리게되었습니다. 건배 !!! –
@ 누군가 어떤 방법으로 솔루션을 공유 할 수 있습니까?어디에서 정확히 그것을 달성하기 위해 변경을 했습니까? 동일한 문제에 갇혀 있어요. getCurrentIndexFunction을 변경 했습니까? – Prateek