Android文本翻页编码实现

本文介绍了在Android中实现文本翻页效果的步骤,包括读取文本并转换为图片,以及展示图片并实现滑动和翻转翻页效果。详细讨论了如何利用贝塞尔曲线绘制翻页效果,同时提供了代码示例和参考链接。
摘要由CSDN通过智能技术生成

Android文本翻页编码实现

步骤一:读取文本并且把文本转换成图片。

1.用MappedByteBuffer读取文本,MappedByteBuffer将文件直接映射到内存(这里的内存指的是虚拟内存,并不是物理内存,后面说证明这一点)。通常,可以映射整个文件,如果文件比较大的话可以分段进行映射,只要指定文件的那个部分就可以。具体可参照(http://blog.sina.com.cn/s/blog_679585110100tdcm.html

public void openbook(String strFilePath) throws IOException {

       book_file = new File(strFilePath);

       long lLen =book_file.length();

       m_mbBufLen = (int) lLen;

       m_mbBuf = new RandomAccessFile(book_file,"r").getChannel().map(

              FileChannel.MapMode.READ_ONLY, 0, lLen);

    }

2.将文本转换成图片,如何确定一张图片可以容纳多少个字符。mPaint.breakText返回在宽度为mVisibleWidth的行中容纳的字符数

int nSize = mPaint.breakText(strParagraph, true,mVisibleWidth,

                     null);

具体参考BookPageFactory.java,这个是网上一大牛写的,这一部分没有什么难度,代码也很清晰,看看源码就ok了。

步骤二:展示文本转换成的图片,并且翻页。

1.      展示文本转换成的图片很简单,用ImageView或者自定义View中。

2.      翻页效果

滑动翻页

用手指向左或者向右滑动,实现翻页。

方案一:

用PageView实现滑动翻页

        try {

            do {

                mPageNum++;

                Bitmap bmp = Bitmap.createBitmap(screenWidth,screenHeight,

                        Bitmap.Config.ARGB_8888);

                Canvas canvas = new Canvas(bmp);

//将当前文本绘制成图片

                pagefactory.onDraw(canvas);

                View itemView =getLayoutInflater().inflate(R.layout.reader,

                        null);

                ImageView reader = (ImageView)itemView

                        .findViewById(R.id.reader);

                reader.setImageBitmap(bmp);

//将一张张转换后的图片加入到ViewPagerAdapter中

                views.add(itemView);

            } while (pagefactory.nextPage());

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        vp = (ViewPager) findViewById(R.id.viewpager);

        // 初始化Adapter

        vpAdapter = new ViewPagerAdapter(views

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值