PhoneGap中文网

 找回密码
 立即注册
查看: 23265|回复: 5
打印 上一主题 下一主题

Android 实现书籍翻页效果(升级版) 特效翻页

[复制链接]

493

主题

2035

帖子

6894

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6894
跳转到指定楼层
楼主
发表于 2014-10-3 21:39:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Android 实现书籍翻页效果(升级版)  特效翻页基本信息

源码分类:新闻阅读
更新时间:2012-09-19
源码大小:0.24 MB
适用平台:Android2.2+

Android 实现书籍翻页效果(升级版)简介

         本软件主要是基于Android平台的,主要实现了对图书的添加与搜索,可以把图书添加到手机内存里,这样可以方便读者读书。还有对读书方式可以设置,是款很实用的软件。

  之前给出的例子只是能使书籍进行简单的拖拽,没有实现翻页的动画效果,很多人希望我能加上这一个,所以首先我们就来说说这个翻页的动画。
    其实翻页的动画很容易实现,只要在Touch抬起后不断的刷新mTouch.x , mTouch.y 的值就行了,   你可以使用handler,thread,也可以使用Scroller,我个人比较喜欢Scroller,这个比较简单。
    新添两个函数:


private void startAnimation(int delayMillis) {
        int dx, dy;
        // dx 水平方向滑动的距离,负值会使滚动向左滚动
        // dy 垂直方向滑动的距离,负值会使滚动向上滚动
        if (mCornerX > 0) {
            dx = -(int) (mWidth + mTouch.x);
        } else {
            dx = (int) (mWidth - mTouch.x + mWidth);
        }
        if (mCornerY > 0) {
            dy = (int) (mHeight - mTouch.y);
        } else {
            dy = (int) (1 - mTouch.y); // 防止mTouch.y最终变为0
        }
        mScroller.startScroll((int) mTouch.x, (int) mTouch.y, dx, dy,
                delayMillis);
    }

public void computeScroll() {
        super.computeScroll();
        if (mScroller.computeScrollOffset()) {
            float x = mScroller.getCurrX();
            float y = mScroller.getCurrY();
            mTouch.x = x;
            mTouch.y = y;
            postInvalidate();
        }
    }


接着在按下抬起时调用就行了
if (event.getAction() == MotionEvent.ACTION_UP) {
   if (canDragOver()) {   //判断是否可以翻页
    startAnimation(1200);
   } else {
    mTouch.x = mCornerX - 0.09f;   //如果不能翻页就让mTouch返回没有静止时的状态
    mTouch.y = mCornerY - 0.09f;   // - 0.09f是防止mTouch = 800 或mTouch= 0 要不在这些值时会出现BUG
   }

还需要修改的地方是calcPoints() 这个函数,之前为了防止一个bug出现,添加了if (mBezierStart1.x < 0 || mBezierStart1.x > mWidth) {这个判断,但是在翻页动画时mTouch.x会小于0(从右向左翻时)或者mTouch.x>mWidth(从左往右)这时并不需要在进入这个函数进行处理,所以要在这个情况时将其屏蔽,改为:
if (mTouch.x > 0 && mTouch.x < mWidth) {
   if (mBezierStart1.x < 0 || mBezierStart1.x > mWidth) {
……}
}
经过上边的修改就可以完成动画效果了。



    还有的童鞋想将这个做成一个电子书阅读器,但是不知道如何将txt中的内容转换为翻页所需的图片,并在翻页后进行切换。所以我新添加了一个简单的类BookPageFactory,用来读取SD卡中的一个txt,并将读取的内容转换为一个bitmap用于显示。哈哈,这个只是一个功能很小的类,只是给大家做个演示,起到抛砖引玉的作用。大家请根据自己所需的功能酌情修改。
源码附带的是一个简单的带翻页动画的电子书阅读器,大家测试时请将test.txt放于SD卡根目录下:
效果图:










Android 实现书籍翻页效果(升级版)  特效翻页 源码下载


Android 实现书籍翻页效果(升级版).zip (716.85 KB, 下载次数: 49)








回复

使用道具 举报

0

主题

20

帖子

55

积分

注册会员

Rank: 2

积分
55
沙发
发表于 2015-5-2 17:50:59 | 只看该作者
很不错,不错,学习学习。跨平台得顶起
回复 支持 反对

使用道具 举报

0

主题

17

帖子

50

积分

注册会员

Rank: 2

积分
50
板凳
发表于 2015-5-2 15:44:23 | 只看该作者
人不错,学习学习 感觉phonegap+html越来越火了。
回复 支持 反对

使用道具 举报

2

主题

17

帖子

62

积分

注册会员

Rank: 2

积分
62
地板
发表于 2015-5-2 16:09:08 | 只看该作者
好东西啊,谢谢分享 感谢phonegap中文网
回复 支持 反对

使用道具 举报

0

主题

19

帖子

52

积分

注册会员

Rank: 2

积分
52
5#
发表于 2015-5-2 15:03:01 | 只看该作者
非常好 感谢 开始学习html5 app开发了
回复 支持 反对

使用道具 举报

0

主题

17

帖子

57

积分

注册会员

Rank: 2

积分
57
6#
发表于 2015-5-2 12:47:13 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-11-23 01:46 , Processed in 0.079218 second(s), 35 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表