zllibrary包下的
core
子包提供了要使用的各個抽象類,如。
其實例化了三個類,分別做資料庫,,library
的操作,這些類並未使用,但我們可以使用它們。
資料庫,首先建立或讀取資料庫,如果是新建則根據版本進行版本相容,初始化增刪改查的語句以供使用。(此處是通過構造方法的方式進行初始化的)
bug的處理
自己捕獲異常,並處理,當發生無法捕捉的異常(如執行時異常時)會轉到這個handler
執行。
thread.setdefaultuncaughtexceptionhandler(
newuncaughtexceptionhandler(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+uri
的intent
方式,如果能夠找到解決方案則進入
activity
如果不行,則進入bugreportactivity。
<
activity
android:name=".library.bugreportactivity"
android:configchanges="orientation|keyboardhidden"
android:label="fbreader crash"
android:process=":crash"
/>
fbreader基礎
------------zlandroidactivity
該類是fbreader
的父類,實現功能如下:
·轉屏判斷
·亮度判斷
·電量判斷
·wakelock
從使用的view
可以知道,該
activity
指定的layout
為r.layout.main
,其主要操作的就是
org.geometerplus.zlibrary.ui.android.view.zlandroidwidget
在org.geo.meterplus.zlibrary.ui.android.library
包下,
高階--fbreader
oncreate中設定佔據螢幕大小,新增功能(
action
),新增3個
popup到。
onstart中檢查螢幕大小是否符合,不符重開
activity,
為oncreate
中新增的3個
popup
設定位置
zltreeresource樹形資源
實現類似於樹形xml
的效果,能夠載入資源
如errormessage
下的error
zlresource.resource("errormessage").getresource(「error」).getvalue()
uiutil ui提示工具類(提供
toast
等提示)
,curl
,slide
,shift
翻頁方式的改變十分簡單,只需要更改scrollingpreferences.
animationoption即可
其呼叫在zlandroidwiget
中的getanimationprovider方法中。
所以,如果我們想自定義乙個翻頁動畫,可以通過如下幾步完成:
1 自定義乙個類繼承自animationprovider
2 實現其方法(必要實現方法:
3 在zlview
的animation
列舉中新增自身標識
public
static
enum animation else
if (!mycurrentpage.endcursor.isnull() &&
!mynextpage.startcursor.isnull() &&
!mycurrentpage.endcursor.samepositionas(mynextpage.startcursor)) else {
myorientation = activityinfo.screen_orientation_landscape;
setrequestedorientation(myorientation);
根據當前寬高對比確定螢幕朝向,並改變。
執行如下**即可:
此處的precent
為1-100
的值,當想讓螢幕自定亮度,則
attrs.screenbrightness
可以傳入
-1f即可。
final windowmanager.layoutparams attrs = getwindow().getattributes();
attrs.screenbrightness = percent / 100.0f;
getwindow().setattributes(attrs);
在實際應用中某個操作需要分成多個耗時操作執行,而這時我們一般需要乙個進度對話方塊來顯示進度。如正在登陸,正在載入列表····等等
所以可以建立乙個queue
用於儲存需要操作的資訊
·每個耗時操作可以放到乙個runnable
中執行,每個操作都有其自己的訊息(如正在登陸)
所以可以建立乙個pair
,用於儲存這兩份資訊。
·執行乙個runnable
完成後,才繼續執行之後的任務,所以需要進行鎖定
詳情見queuemessageutil
《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具
檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...
護照閱讀器
護照閱讀器 首先從一代 二代護照閱讀器到最新嵌入式護照閱讀器,本身就是乙個識別技術 識別功能 識別準確率都逐步提高的過程。接下來看看桌面式跟嵌入式的應用行業,到底這兩款護照閱讀器有什麼區別?桌面式護照閱讀器 酒店管理系統 機場安全檢查管理系統 訪客管理系統 網咖實名制登記管理系統 汽車尾氣檢測管理系...
中華pdf閱讀器 IReader閱讀器使用體驗
作為一名秉承著 時間寶貴,多讀名著 的讀者,自2016年便開始使用掌閱平台讀書,剛開始在平板上閱讀,隨著閱讀量增大,覺得對眼睛傷害逐漸明顯,時常乾澀痠癢,於是在2017年年底購買了掌閱當年新出的產品 ireader ocean,之後便一直在該閱讀器上讀書。至今已在掌閱平台讀書一百三十餘本。對於打算入...