FBReaderJ学习笔记(三):Footer底部状态栏更改_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > FBReaderJ学习笔记(三):Footer底部状态栏更改

FBReaderJ学习笔记(三):Footer底部状态栏更改

 2015/2/9 17:46:08  chace  程序员俱乐部  我要评论(0)
  • 摘要:底部状态栏显示页码,电量和时间,原版还弄了个进度条,但是无论是它的OldStyle还是NewStyle都不好看,那个进度条完全是多余的。那就动手改吧,我们最终实现的效果是这样的。关键在org.geometerplus.fbreader.fbreader.FBView这个类中。这里的结构是这样的。因为比较简单,我直接贴代码了。首先是Footer类。//右侧信息protectedStringbuildInfoString(Stringseparator)
  • 标签:笔记 学习 学习笔记

底部状态栏显示页码,电量和时间,原版还弄了个进度条,但是无论是它的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);

 

发表评论
用户名: 匿名