android pdf框架-3,基于recyclerview修改

这篇具有很好参考价值的文章主要介绍了android pdf框架-3,基于recyclerview修改。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于recyclerview的实现版本

解析使用的是pdifum.这个库缺点是缩放功能不行.点击链接功能没有.只有渲染.

GitHub - danjdt/android-pdfviewer: A Android PDF Viewer that render pdf using PdfRenderer and displays it in a RecyclerView.

recyclerview的滑动并不是像ios那样,有很好的惯性,针对此,从ebookdroid中拿了flinger,因为recyclerview不能直接修改scroller,所以只有修改源码了,换了包名,避免冲突.

https://github.com/archko/pdf-recyclerview.git,这是修改recyclerview,添加了flinger,滑动更流畅,当然可以不用它.

修改几个bug

缩放的bug修改

上面源码中的缩放是针对view,如果要自定义linearlayoutmanager也是可以的,复杂度就提升不少了.

在这我只作view的缩放后映射到解码上面:

override fun onDraw(canvas: Canvas) {
        super.onDraw(canvas)
        canvas.save()
        canvas.translate(mTouchX, 0f)
        canvas.scale(mScaleFactor, mScaleFactor)
        canvas.restore()
    }

    override fun dispatchDraw(canvas: Canvas) {
        canvas.save()

        if (mScaleFactor == mMinZoom) {
            mTouchX = 0f
        }

        canvas.translate(mTouchX, 0f)
        canvas.scale(mScaleFactor, mScaleFactor)

        super.dispatchDraw(canvas)

        canvas.restore()
        invalidate()
    }

这是原来的缩放作了一些小修改的结果.修正事件,

当缩放手势完成后,需要处理解码的缩放,否则就是把原来的图片放大,会模糊,而不是真正的缩放.文章来源地址https://www.toymoban.com/news/detail-825604.html

private inner class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener() {
        override fun onScale(detector: ScaleGestureDetector): Boolean {
            if (mIsZoomEnabled) {
                mScaleFactor *= detector.scaleFactor
                mScaleFactor = Math.max(mMinZoom, Math.min(mScaleFactor, mMaxZoom))
                mMaxWidth = mWidth - mWidth * mScaleFactor
                //Log.d("PDFSDK", "mScaleFactor:$mScaleFactor")
                invalidate()
            }
            return true
        }

        override fun onScaleEnd(detector: ScaleGestureDetector) {
            super.onScaleEnd(detector)

            pdfRendererProxy?.a

到了这里,关于android pdf框架-3,基于recyclerview修改的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android开发—RecyclerView使用

    RecyclerView 在Android中用于创建列表。 官网的解释为: RecyclerView 可以让您轻松高效地显示大量数据。您提供数据并定义每个列表项的外观,而 RecyclerView 库会根据需要动态创建元素。 当RecyclerView的列表项滚出屏幕的时候,RecyclerView不会销毁该视图,相反而是将这些视图复用到

    2024年02月16日
    浏览(73)
  • Android RecyclerView使用简述

      RecyclerView是Android中非常受欢迎的控件,RecyclerView是官方在Android5.0之后新添加的控件,推出用来替代传统的ListView和GridView列表控件,所以如果你还在使用ListView的话可以替换为RecyclerView了。 文章的功能可以先运行看看效果,APK下载   对于RecyclerView的使用根据实际项目进

    2023年04月08日
    浏览(88)
  • Android RecyclerView 实现瀑布流

    Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等 瀑布流也是个常用的显示控件了,但是在使用时经常遇到一些问题,比如滑动回顶部后出现空隙、item在滑动时乱跳等问题。 下面就来说说我怎么实现的瀑布流,并且怎么处理上面所说的这些问题的。 我使用了原生

    2024年02月09日
    浏览(71)
  • 【Android】Recyclerview的缓存复用

    RecyclerView是Android开发中常用的一个高度可定制的列表视图组件。它是在ListView和GridView的基础上进行了改进和增强,旨在提供更好的性能和更灵活的布局管理。 RecyclerView的主要特点如下: 灵活的布局管理器(LayoutManager): RecyclerView使用LayoutManager来管理其子视图的布局方式。

    2024年02月15日
    浏览(39)
  • Android的UI开发——RecyclerView

    RecyclerView提供了三种布局管理器即: LinearLayoutManager 线性布局管理器 StaggeredGridLayoutManager 瀑布流布局管理器 GridLayoutManager 网格布局管理器 这三种布局管理器都是通过 setLayoutManager 方法来设置 1.LinearLayoutManager 线性布局管理器 效果如图:         1).新建一个类存放信息。

    2024年02月03日
    浏览(56)
  • Android studio RecyclerView 应用设计

    一、创建empty activity项目: 二、打开activity_main.xml布局文件: 添加RecyclerView控件

    2024年01月25日
    浏览(38)
  • Android 使用 RecyclerView 创建动态列表

    记录一下学习过程,RecyclerView 创建动态列表效果如下: Recyclerview 认识 Recyclerview 库: Recyclerview 指南: RecyclerView 可以显示大型数据集,通过回收有限数量的视图可以有效地滚动这些数据集,同时最大限度减少内存用量。 在实例化 ViewHolder 视图时可以定义单击侦听器。 Recy

    2023年04月27日
    浏览(47)
  • Android:RecyclerView自由拖动item

    原生就自带有可拖动item的工具:ItemTouchHelper 看下效果: 可拖动RecyclerView预览效果 接下来我们看如何使用。 其中判断条件中的item.isMovable这边是记录该item是否可以拖动,也可以换成其他判断条件比如根据位置判断等。 另外,需要留意一点,如果你是在onBindViewHolder中有设置点

    2024年01月23日
    浏览(47)
  • Android Recyclerview的item间距实现

    Recyclerview中,提供了一个方法 addItemDecoration 给我们用于设置item的分割线 下面提供几个常见的分割线效果 注: 下面的 SizeUtils 是AndroidUtilCode此库里的工具类,需要添加依赖,也可以自行修改封装的方法(主要是将dp单位转为px) 以下代码已封装在我的库中stars-one/XAndroidUtil: 封装自己常

    2024年02月05日
    浏览(60)
  • Android之RecyclerView仿ViewPage滑动

    我们都知道ViewPage+Fragment滑动,但是的需求里面已经有了这玩意,但是在Fragment中还要有类似功能,这时我相信很多人就苦恼了,没事,这张来解决,用RecyclerView去实现即可,而且还带指示器。 这里我没有弄GIF,反正效果和ViewPage+Fragment是一样的。 代码如下(示例): 一个是

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包