如何在android中实现Flip book类动画?

时间:2018-06-08 11:42:33

标签: android animation page-curl

基本上我正在开发电子书阅读Android应用程序,我需要页面卷曲动画。我试图通过使用https://github.com/harism/android-pagecurl但有2个问题来实现

1)当页面向后翻时,页面卷曲动画由于harism无法正常工作 例如:我浏览页面直到4,然后返回它加载页面4.如果我转到另一页面它应该加载第3页。而是它加载第5页。 之前曾问过同样的问题,但它提供了一些我已经尝试过的提示

Android Page Curl Animation by Harism shows inconsistency in the reverse index count in the getBitmap() method of CurlActiviy()?

Page-curl animation by harism not working properly when a page turns backwards

2)我正在使用TextView并创建Bitmap,我想滚动,作为文本视图   内容不适合屏幕,所以我不清楚我能否实现as   创建位图。

 private Bitmap loadBitmap(int width, int height, int index) {

        String text1, tittle;
        Bitmap txtBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        if (txtArr == null || txtArr.length == tempArrIndex + 1) {
            text1 = nitiinfoArrayList.get(pageindex).content;
            txtArr = text1.split(Constant.strpattern);
            pageCount = pageCount + txtArr.length;
            pageindex++;
            tempArrIndex = 0;
        } else if (txtArr.length > 1) {
            tempArrIndex++;
        }
        text1 = txtArr[tempArrIndex];
        int margin = 7;
        Rect r = new Rect(margin, margin, width - margin, height - margin);
        Canvas c = new Canvas(txtBitmap);
        Typeface ttf = Typeface.createFromAsset(context.getAssets(), "fonts/shruti.ttf");
        TextView tv = new TextView(getApplicationContext());
        tv.setText(text1);
        tv.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
        tv.setTextSize(18);
        tv.setTypeface(ttf);
        tv.setGravity(Gravity.CENTER);
        tv.layout(0, 0, getResources().getDisplayMetrics().widthPixels, getResources().getDisplayMetrics().heightPixels);
        Paint p = new Paint();
        p.setColor(getResources().getColor(R.color.chromelight));
        c.drawRect(r, p);
        tv.draw(c);
        c.drawBitmap(txtBitmap, 0, 0, null);

        return txtBitmap;
    }

任何建议或任何其他解决方案都将非常感激。感谢

1 个答案:

答案 0 :(得分:0)

你应该尝试deffinetly这个库

https://github.com/eschao/android-PageFlip

它有很酷的功能,这是最好的

之一
  

您可以给出页面宽度从0到0.5f的比率来设置区域   reponsing click事件触发页面翻转。默认值为   0.5f,这意味着如果你点击屏幕的左半部分就会发生后退翻转,如果点击右半边就会开始向前翻转   单页模式下的屏幕。