1. 程式人生 > 實用技巧 >Android NurReaderView 閱讀器 (支援字串&.txt檔案)

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。如果你發現的話請你留個言我會改改的。。。