FBReader阅读器各源码作用和知识点分析

FBReader阅读器的ZLAndroidApplication初始化数据库、图片和library操作。文章深入讲解了阅读物翻页机制、文字承载、菜单逻辑、数据库操作、屏幕方向变化、亮度调整和耗时操作队列的实现。通过ZLAndroidWidget实现翻页效果,ZLTextView承载文字,分页逻辑保证流畅阅读。同时探讨了菜单功能和自定义操作的添加方法。
摘要由CSDN通过智能技术生成

ZLLibrary包下的core子包提供了要使用的各个抽象类,如ZLApplication

ZLAndroidApplication 本应用的Application

其实例化了三个类,分别做数据库,图片,library的操作,这些类并未使用,但我们可以使用它们。

数据库,首先创建或读取数据库,如果是新建则根据版本进行版本兼容,初始化增删改查的语句以供使用。(此处是通过构造方法的方式进行初始化的)

 

 

Bug的处理

自己捕获异常,并处理,当发生无法捕捉的异常(如运行时异常时)会转到这个Handler执行。

Thread.setDefaultUncaughtExceptionHandler(

new UncaughtExceptionHandler(this)

这里的UncaughtExceptionHandler就是异常处理类(继承自同名类)

在这个里面,我们可以开启一个activity用于处理和显示页面

Activity配置如下:

 <activity

            android:name="org.geometerplus.android.fbreader.crash.FixBooksDirectoryActivity"

            android:configChanges="orientation|keyboardHidden"

            android:process=":crash"

            android:theme="@android:style/Theme.Dialog" >

            <intent-filter>

                <action android:name="android.fbreader.action.CRASH" />

 

                <category android:name="android.intent.category.DEFAULT" />

 

                <data android:scheme="CachedCharStorageException" />

            </intent-filter>

  </activity>

使用的是action+UriIntent方式,如果能够找到解决方案则进入Activity

如果不行,则进入BugReportActivity

 

    <activity

            android:name=".library.BugReportActivity"

            android:configChanges="orientation|keyboardHidden"

            android:label="FBReader crash"

            android:process=":crash" />

 

 

 

FBReader基础------------ZLAndroidActivity

该类是FBReader的父类,实现功能如下:

·转屏判断

·亮度判断

·电量判断

·wakeLock

从使用的View可以知道,该Activity指定的layoutR.layout.main,其主要操作的就是org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget

 

org.geo.meterplus.zlibrary.ui.android.library包下,

 

 

进阶--FBReader 

onCreate中设置占据屏幕大小,添加功能(action),添加3popupFBreaderApp

onStart中检查屏幕大小是否符合,不符重开activity

Oncreate中添加的3popup设置位置

 

 

ZLTreeResource

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值