[Android] SwipeBack 右滑關閉函式庫

Android 目前還沒有內建的右滑關閉功能,如果要關閉既有頁面,只能使用螢幕下方或Toolbar 左上角的返回按鍵,不是很方便。

試用了一下 Github 上眾多的右滑關閉函式庫,多數函式庫都不支援新版 Support Design Library 的 CoordinatorLayout,操作上也很不穩定,有時用手指稍微移動一下頁面就會關閉。

這篇要介紹的是 sockeqwe 寫的 SwipeBack,這個函式庫支援新版 Support Design Library,也不需要在 Layout 自訂額外的佈局,也不用修改樣式,只要加幾行程式碼就能實現右滑關閉的功能。
更新:目前最穩定,且持續有在維護的 SwipeBack 函式庫是這個 
https://github.com/tyzlmjj/SwipeBack

先看一下官網的 Demo 展示:




使用前要先導入 SwipeBack 函式庫
compile 'com.hannesdorfmann:swipeback:1.0.2
程式碼如下,第六行可以設定上下左右不同方向的滑動關閉,原先設定 Activiy 佈局的setContentView,改成用第七行的方式,第八行的佈局則會顯示滑動時的指示(文字 Back 加上兩個箭頭),如不想讓這個指示出現,可以參考原程式自訂一個佈局,把顯示的部分全部隱藏,再將背景設定為透明,就能隱藏指示。

SwipeBack 這個函式庫將右滑關閉變得很容易實作,在應用程式加上這個小功能,可以增進使用者體驗。


分類:

DevOps 推薦書藉

目前市面上仍少見到 DevOps 的書籍,以下推薦兩本我曾接看過的 DevOps 書籍。

分類: ,

[Android] BuildConfig.DEBUG

在開發 Android 時,有時候我們需要寫 Log 以方便開發測試,但不想讓這些程式在發佈時執行,通常會自訂一個 Debug Flag 來判斷,上架前再手動將這個 Flag 設定成 False。這樣作挺麻煩的,有時候上架前還會忘記改。

在 ADT r17 版增加了 BuildConfig.DEBUG 的設定機制,以下是官方網站的描述:
Added a feature that allows you to run some code only in debug mode. Builds now generate a class called BuildConfig containing a DEBUGconstant that is automatically set according to your build type. You can check the (BuildConfig.DEBUG) constant in your code to run debug-only functions.
這個機制允許開發者只在 Debug 模式下執行部份的程式,在 Android Build 時會產生一個 BuildConfig Class,從 Android Studio 可以找到這個 Class,裡頭包括了 DEBUG 變數。


當APP上架前打包成APK檔時,BuildConfig.DEBUG就會自動改成 False,如此可免去每次上架前要手動設定的步驟。


分類:

稀土掘金:技術文章交流平台

資訊技術變化快速,身為專業的工程師,必須隨時吸收技術新知。才能在多變的職場上,獲得更多機會。

在台灣多數工程師的技術新知管道,是Facebook粉絲團所分享的文章, 而且所分享的文章,以英文和簡體中文為主,繁體中文文章的量不多。但我個人極不愛Facebook,不僅是隱私權的關係,而且它還是個「資訊黑洞」(在Facebook上所發表和討論的文字,在搜尋引擎上之找不到)。

分類:

[Android] Jsoup 網頁內容擷取函式庫

Jsoup 是一款相當知名的 Java 函式庫,許多開發者常使用它來擷取網頁的資料。以往將  Jsoup 使用在 Android 應用程式上,會有效能上的問題,網頁擷取速度不快,偶爾會遇到頁面阻塞的狀況。然而在 1.8.3 版本的釋出之後,大幅改善 Android 效能的問題,依照 Jsoup 官網的說法,新版本大幅改善 HTML 頁面擷取的效能,在Android 4.4 上測試比舊版快1.7倍,Android 5.x則快了1.3倍。

分類:

Feed43 - RSS Feed產生器

有時候需要隨時關注某個網頁上的資訊,可是該網頁沒有RSS Feed可以訂閱。此時,可用Feed43來幫我們產生RSS Feed。我們可以把產生的RSS Feed,加入常用的RSS閱讀器,或者將它當成來源資料,供其他系統和程式來使用,真是送禮自用兩相宜。

這裡我用一個案例來說明,我時常到台北市圖書館借書,因此需要關注圖書館是否有新書可以借閱,我們就可以利用Feed43,根據自己喜好的條件產生新書的RSS Feed。(事實上台北市圖已提供新書通報的RSS服務)

先到台北市圖館藏查詢系統,依自己喜好的條件來查詢新到圖書。

顯示查詢結果後,將上方的網址複製下來。

然後,請到 http://feed43.com 這個網址註冊一個帳號,註冊程序就不說明了。

成功註冊之後,請到 My Feed,點選「Create new feed」
貼上剛才複製的網址,Encoding輸入utf-8,然後按下「Reload」按鈕


會出現這個網頁的 HTML 碼

然後要觀察 HTML 碼有條列式的部分,例如下圖的 Page Source ,這是一筆新書資料。請將這個 HTML 碼的樣板,依照 Feed43 的內建語法,輸入到 Step2 的 Item 欄位。這裡是要讓程式知道爬網頁的規則。然後按下「Extract」按鈕。

Feed43 的語法,{*}表示全部,{%}表示變數。

Extract 顯示爬出了七筆資料,{%1}{%2}{%3} 則是每筆資料的變數。

Step3 要將上面產生的三個變數輸入下方的對應欄位,{%1}是網址,輸入到 Item Title Template,{%2}是名稱,輸入到 Item Title Template,{%3}是描述,輸入到 Item Content Template。然後按下「Preview」按鈕,就會依照這個規則生成 RSS Feed。
這是最後產生的 RSS Feed 內容,系統以亂數自動生成一個隨機檔名,但這個檔名是可以修改的。

這是最後產生的 RSS Feed 連結

Feed43 免費版可以設定無限個公開網址的 RSS Feed ,RSS 內容每六小時更新一次,意思是說,若你的 RSS Feed 在12:00建立,下次更新時間是18:00,以後每天的更新時間是00:00、06:00、12:00、18:00。

Feed43 官網寫到免費版 RSS Feed 只有 20 筆資料,但我實測後發現沒有限制。(也許這是 Bug吧!?)

很多免費的自動化工具隨手可得,只要稍加利用,就能讓生活變得更有效率。




分類: , ,

如何閱讀一本書

一直有閱讀的習慣,這幾年平均每年都會讀上一百本書。曾經有人問我,工作這麼忙,怎麼還有空看書?我認為,做一件事,只要方法對了並持之以恒,也就沒有時間上的問題了。這篇想要分享的是我的讀書方法。

分類:

[自製App] 樹懶新聞 Sloth News

幾年前寫過一款新聞閱讀器的 App,當時是 Android 2.x 的時代,平台還不夠成熟,很多功能都是自己硬做出來的。那個 App 曾經有五六萬的下載量,評價還不錯,可是最後因故下架了。最近把之前那款新聞閱讀器重新改寫,用了目前 Android 最新的 Design Support Library,相關函式庫的版本也都上到最新,並改名為「樹懶新聞」。

分類:

[Android] Okhttp : 高效能 HTTP 客戶端

Okhttp 是一個 Java 的 HTTP 客戶端函式庫,這個函式庫經常被 GitHub 的眾多開源 Android 應用程式使用。另一個常用的 HTTP 客戶端函式庫是 Volley,若回應的資料量很大,Volley 會有效能上的問題,此時建議改用 Okhttp。

首先在專案中引入 Okhttp 函式庫
compile 'com.squareup.okhttp:okhttp:2.5.0'

底下是一個簡單的 HTTP 請求範例,可是這樣寫,執行起來會出錯,因為 Okhttp 不會把結果丟回主執行緒。
這裡要改用 Callback 的方式(第7行),取得 HTTP 回應。然後從 onResponse 方法取得回應的字串(第20行)。Okhttp 的 Callback 是在背景執行緒執行,不像 Volley 一樣會主動丟回主執行緒。所以在23~28行使用 runOnUiThread,把 HTTP 回應的結果丟回給主執行緒,並呈現在畫面上。


分類:

Copyright © Andy Cheng

Distributed By My Blogger Themes | Blogger Theme By NewBloggerThemes Up ↑