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

NurReader

介绍

功能

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

效果:


软件架构

阅读器-它可以快速解释字符串(支持.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。如果你发现的话请你留个言我会改改的。。。


posted @ 2020-11-12 10:59  nur01  阅读(446)  评论(0)    收藏  举报