首先,Harism,謝謝你分享這個美麗的框架! :)
現在,只有補充Harism的響應:
當雜誌,書籍等工作,我們處理的頁面數量不確定。
在項目Harism-Android-Page-Curl的類CurlActivity中提供的示例中,使用「Switch」來控制頁面。爲了能夠滿足我的需求,我必須更改方法「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);
}}}
我希望我幫助!
再一次感謝Harist框架!
讓我先謝謝你爲我們提供了所有在android中使用頁面捲曲的精彩作品。 我試過你的建議方式,從getBitmap()方法內部的CurlView類的getCurrentIndex方法顯示mCurrentIndex,但似乎getCurrentIndex方法增加了右側頁面的數量(+1)翻轉(即將頁面從左向右移動),而且翻回第一頁也不會使初始值(從它開始的位置)恢復。 我在哪裏錯了? – 2012-01-12 22:38:31
是的,只是在您的建議中得到了我在Curl視圖類中的問題的答案,我錯誤地試圖從getBitmap方法獲取頁面索引 乾杯! – 2012-01-13 12:14:49
@SomeoneSomewhere可以分享解決方案,即你究竟做了什麼改變來實現它我陷入了同樣的問題,你是否對getCurrentIndexFunction做了任何修改 – Prateek 2013-05-24 13:44:24