まず、ハリズム、この美しいフレームワークを共有していただきありがとうございます!:)
さて、ハリズムの反応を補完するためだけに:
雑誌や本などを扱うときは、未定のページ数を扱います。
プロジェクト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に感謝します!