zoukankan      html  css  js  c++  java
  • FBReaderJ学习笔记(三):Footer底部状态栏更改

    底部状态栏显示页码,电量和时间,原版还弄了个进度条,但是无论是它的OldStyle还是NewStyle都不好看,那个进度条完全是多余的。那就动手改吧,我们最终实现的效果是这样的。

    关键在org.geometerplus.fbreader.fbreader.FBView这个类中。这里的结构是这样的。

    因为比较简单,我直接贴代码了。

    首先是Footer类。

            //右侧信息
            protected String buildInfoString(String separator) {
                final StringBuilder info = new StringBuilder();
                final FooterOptions footerOptions = myViewOptions.getFooterOptions();
    //            if (footerOptions.ShowProgress.getValue()) {
    //                info.append(pagePosition.Current);
    //                info.append("/");
    //                info.append(pagePosition.Total);
    //            }
                if (footerOptions.ShowBattery.getValue()) {
                    if (info.length() > 0) {
                        info.append(separator);
                    }
                    info.append(myReader.getBatteryLevel());
                    info.append("%");
                }
                if (footerOptions.ShowClock.getValue()) {
                    if (info.length() > 0) {
                        info.append(separator);
                    }
                    info.append(ZLibrary.Instance().getCurrentTimeString());
                }
                return info.toString();
            }
            //左侧进度页码
            protected String buildProgressString(PagePosition pagePosition){
                final StringBuilder info = new StringBuilder();
                final FooterOptions footerOptions = myViewOptions.getFooterOptions();
                if (footerOptions.ShowProgress.getValue()) {
                    info.append(pagePosition.Current);
                    info.append("/");
                    info.append(pagePosition.Total);
                }
                return info.toString();
            }

    然后在FooterOldStyle和FooterNewStyle中绘制出相应的信息,同时注释掉绘制进度条的部分。

                // draw info text
                final String infoString = buildInfoString(" | ");
                final String progressString=buildProgressString(pagePosition);
                final int infoWidth = context.getStringWidth(infoString);
                context.setTextColor(fgColor);
                context.drawString(right - infoWidth, height - delta, infoString);
                context.drawString(left, height - delta, progressString);
  • 相关阅读:
    我要当伴娘
    Oracle SCN与时间的相互转换
    解决物理standby 归档日志损坏ORA00334
    Oracle块修改跟踪功能
    八月九日学习报告
    八月十三日学习报告
    八月七日学习报告
    八月十二日学习报告
    八月六日学习报告
    八月十日学习报告
  • 原文地址:https://www.cnblogs.com/chace/p/4280356.html
Copyright © 2011-2022 走看看