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自动翻页

想要更改样式的话使用NurControllersetTheme(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  阅读(364)  评论(0编辑  收藏  举报