NurReader
介绍
功能
支持字符串和<.txt>文件
可以设置反向 =》(也就是维吾尔语-哈扎克语-阿拉普语等语言一样的从右到左的文字)
自带的通用的控制器 =》字体大小&夜间模式&快速翻页(用进度条)(可以自定义)
样式可以自定义 =》背景颜色&字体大小&字体颜色&控制器的颜色等
效果:
软件架构
阅读器-它可以快速解释字符串(支持.TXT文件)并把文字自动分各个页面。
配置
- 项目的根目录build.gradle配置
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- 添加依赖项
dependencies {
....
implementation 'com.gitee.nurApplication:nur-reader:1.0.1'
}
使用说明
- xml
<com.nurmemet.readbook.widget.NurReaderView
android:id="@+id/nurReaderView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
- 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。如果你发现的话请你留个言我会改改的。。。