美文网首页Android-阅读器系列
FBreaderj笔记整理(页脚)

FBreaderj笔记整理(页脚)

作者: EvanZch | 来源:发表于2018-08-20 19:04 被阅读0次

    前言

    FBreader是一款强大的十分强大的电子书阅读器,功能十分丰富,支持epub,txt、PDF(需要额外插件)等多种格式,戳这里下载体验 (科学上网),作者已将源码分享出来了,如果你有想法开发一款电子书类的App,十分建议去阅读一下 FBReaderJ源码。

    本系列是我在使用FBReaderJ过程中,整理的一些笔记,方便后期查阅。

    安装包

    如果上面链接不行,可以直接下载下面的安装包

    Fbreader.Apk (密码:x2gh)

    pdf插件(密码:q3c3)

    正文

    1、页脚样式

    • SCROLLBAR_HIDE = 0 (隐藏页脚)
    • SCROLLBAR_SHOW = 1
    垂直滚动样式
    • SCROLLBAR_SHOW_AS_PROGRESS = 2

    垂直进度条样式.png
    • SCROLLBAR_SHOW_AS_FOOTER = 3 (水平页脚)
    水平页脚新样式.png
    • SCROLLBAR_SHOW_AS_FOOTER_OLD_STYLE = 4 (水平页脚旧样式)
    水平页脚旧样式.png

    2、页脚样式设置

    class:ViewOptions

    // 设置页脚样式
    ScrollbarType =new ZLIntegerRangeOption("Options", "ScrollbarType", 0, 4, FBView.SCROLLBAR_SHOW_AS_FOOTER);
    

    通过第四个参数,可直接设置页脚显示样式或者取消显示。

    // 上下左右边距
    LeftMargin =new ZLIntegerRangeOption("Options", "LeftMargin", 0, 100, horMargin);
    RightMargin =new ZLIntegerRangeOption("Options", "RightMargin", 0, 100, horMargin);
    TopMargin =new ZLIntegerRangeOption("Options", "TopMargin", 0, 100, 20);
    BottomMargin =new ZLIntegerRangeOption("Options", "BottomMargin", 0, 100, 40);
    // 页脚高度
    FooterHeight =new ZLIntegerRangeOption("Options", "FooterHeight", 8, dpi / 8, dpi / 10);
    // 切换夜间白天模式
    ColorProfileName =new ZLStringOption("Options", "ColorProfile", ColorProfile.DAY);
    

    简单说一下ZLIntegerRangeOption,其实就是一个 map 数据保存的封装类,参数如下:

    ZLIntegerRangeOption(String group, String optionName, int minValue, int maxValue, int defaultValue)
    

    其中 groupoptionName 会生成 map 的 key 值, defaultValue 为参数,而 minValuemaxValue 参数为 defaultValue 取值范围。

    3、页脚样式分析

    其中垂直方式比较简单,就直接跳过,主要是 SCROLLBAR_SHOW_AS_FOOTER 和 SCROLLBAR_SHOW_AS_FOOTER_OLD_STYLE 两种方式。

    FBView 中 :

    public Footer getFooterArea() {
            int type = myViewOptions.ScrollbarType.getValue();
            LogUtils.i(TAG + "--getFooterArea  type=" + type);
            switch (type) {
                case SCROLLBAR_SHOW_AS_FOOTER:
                    if (!(myFooter instanceof FooterNewStyle)) {
                        if (myFooter != null) {
                            myReader.removeTimerTask(myFooter.UpdateTask);
                        }
                        // 水平新样式
                        myFooter = new FooterNewStyle();
                        myReader.addTimerTask(myFooter.UpdateTask, 15000);
                    }
                    break;
                case SCROLLBAR_SHOW_AS_FOOTER_OLD_STYLE:
                    if (!(myFooter instanceof FooterOldStyle)) {
                        if (myFooter != null) {
                            myReader.removeTimerTask(myFooter.UpdateTask);
                        }
                        // 水平旧样式
                        myFooter = new FooterOldStyle();
                        myReader.addTimerTask(myFooter.UpdateTask, 15000);
                    }
                    break;
                default:
                    if (myFooter != null) {
                        myReader.removeTimerTask(myFooter.UpdateTask);
                        myFooter = null;
                    }
                    break;
            }
            return myFooter;
        }
    

    相关文章

      网友评论

        本文标题:FBreaderj笔记整理(页脚)

        本文链接:https://www.haomeiwen.com/subject/wyzliftx.html