- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在我的应用程序中使用了Harism 的Page Curl 动画,但我遇到了一个小问题,我在getBitmap()
中使用索引值。 CurlActivity 的方法,我需要在每次翻页时向用户显示页码(比如使用对 Toast.maketext().show
的调用),这在从第 0 页到 pageCount.length
时工作正常,但是当我从右向左移动页面时(页面,即从 pageCount.lenth
到 0 的另一种方式),索引值并没有持续减少。
谁能帮我解决这个问题。
提前致谢。
P.S.: 这将是我关于 stackoverflow 的第一个问题
public Bitmap getBitmap(int width, int height, int index) {
Bitmap b = Bitmap.createBitmap(width, height,Bitmap.Config.ARGB_8888);
b.eraseColor(0xFFFFFFFF);
Canvas c = new Canvas(b);
//this is where index seems to go wrong on reverse counting, I believe
Log.e("PAGE--", ""+index);
Toast.makeText(CurlActivity.this, ""+index, Toast.LENGTH_SHORT).show();
Drawable d = getResources().getDrawable(mBitmapIds[index]);
int margin = 7;
int border = 3;
return b
}
最佳答案
首先,Harism,感谢您分享这个漂亮的框架! :)
现在,只是为了补充Harism的回应:
在处理杂志、书籍等时,我们处理的页数不确定。
在项目 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框架!
关于Harism 的 Android Page Curl Animation 显示 CurlActivity() 的 getBitmap() 方法中的反向索引计数不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8841954/
我在我的应用程序中使用了Harism 的Page Curl 动画,但我遇到了一个小问题,我在getBitmap() 中使用索引值。 CurlActivity 的方法,我需要在每次翻页时向用户显示页码(
我是一名优秀的程序员,十分优秀!