Android NurReaderView 阅读器 (支持字符串&.txt文件)

NurReader

介绍

功能

支持字符串和<.txt>文件
可以设置反向 =》(也就是维吾尔语-哈扎克语-阿拉普语等语言一样的从右到左的文字)
自带的通用的控制器 =》字体大小&夜间模式&快速翻页(用进度条)(可以自定义)
样式可以自定义 =》背景颜色&字体大小&字体颜色&控制器的颜色等

效果:


7YAMMU56Q8[}W]0}A`QZE5B.png

kces8-b4dat.gif
03df1-uztnz.gif

软件架构

阅读器-它可以快速解释字符串(支持.TXT文件)并把文字自动分各个页面。

配置

  1. 项目的根目录build.gradle配置
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
  1. 添加依赖项
    dependencies {
            ....
            implementation 'com.gitee.nurApplication:nur-reader:1.0.1'
    }

使用说明

  1. xml
    <com.nurmemet.readbook.widget.NurReaderView
        android:id="@+id/nurReaderView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
  1. java
        NurReaderView nurReaderView = findViewById(R.id.nurReaderView);

        ReaderBuilder readerBuilder = new ReaderBuilder(this) {
            @Override
            public String getData() {
//                FileUtils.readTxt(FileUtils.PATH + "test.txt");//读取本地TXT文件
//                想要读取本地txt文件的话不要忘记权限。。。
                return "Hello word!";
            }

            @Override
            public String getTitle() {
                return "Title";
            }
        };
        nurReaderView.init(readerBuilder);

上面的话没有控制器(字体大小等功能);如果想时间那些功能那你得使用readerBuilder的setCntroller(NurController nurController)方法。NurController是一个抽象类,你可以继承它实现自定义控制器,也可以使用默认控制器例如:

        readerBuilder.setCntroller(new NurReaderController(this, new NurReaderController.OnClickIconListener() {
            /**
             * 点击返回按钮
             */
            @Override
            public void onBackPress(View v) {
                finish();
            }

            /**
             * 点击收藏按钮
             */
            @Override
            public void onCollectionPress(View v) {
            }
        }));

效果如下:
[图片上传失败...(image-d17b42-1605095163921)]

参数

我们调用了nurReaderView.init(ReaderBuilder builder)方法后他就是开始工作。开始工作前它需要有些配置也就是ReaderBuilder类:

ReaderBuilder.java抽象类:
方法 注释
setLayoutManager(LinearLayoutManager layoutManager) 默认情况下HORIZONTAL的LinearLayoutManager
setStackFromEnd(boolean value) 布局反向
isStackFromEnd() 是否布局反向
addOnChangeListener(OnChangeListener onChangeListener) 监听翻页
setController(NurController nurController) 控制器
getData() 数据内容
getTitle() 题目

想自定义实现控制器的话你可以继承NurController类然后调用ReaderBuilder.setController(NurController nurController)方法

NurController.java抽象类:
方法 注释
getToolbar(ViewGroup group) Tollbar
getController(ViewGroup group) 控制器
main() 初始化view后再被调用
getTitle() 获取title
setTheme(NurReaderThemeData attribute) 设置样式
setCurrentPercent(int percent, int max) 根据百分之X自动翻页

想要更改样式的话使用NurController的setTheme(NurReaderThemeData attribute)方法

NurReaderThemeData.java
方法 注释
setBgColor(int bgColor) 背景颜色
setTextSize(float textSize) 字体大小
setTextColor(int textColor) 字体颜色
setTypeface(Typeface typeface) 字体/font
setControllerColor(int controllerColor) 控制器背景颜色

先到这儿把,有些方法呢你自己可以进去看。

可能存在有些BUG。如果你发现的话请你留个言我会改改的。。。

在这里插入图片描述
在这里插入图片描述
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容