只放拖鞋的鞋櫃

ConstraintLayout 是 Support Library 裡面新增的一個 ViewGroup,從功能上來看非常強大,效能上不輸、甚至贏過傳統的 Layout。因為放在 Support Library 裡面,幾乎市面上所有的手機都相容,就放心使用吧。

以往在建構複雜的畫面時,經常是 LinearLayout 與 RelativeLayout 等等相互組合,拼湊出相當深且複雜的樹狀 xml。略懂 View render 過程的都知道,效能就在深邃的遞迴之中持續消耗。改用 ConstraintLayout 取代傳統 Layout 的複雜組合,把 xml 檔變得更加扁平,效率很容易就能提升。

粗看 ConstraintLayout 會覺得跟 RelativeLayout 有點像,其實它還能做到很多 RelativeLayout 做不到的事情。以下就稍微簡介 ConstraintLayout 的安裝與使用。

閱讀全文 >>

多人開發的場合,大家寫程式的習慣用法往往不一樣。除了實作上的思維不同,在所難免,至少在程式碼風格上可以一致。

不同的語言有不同的 coding style,在 Java 裡面我通常就是參考(以前是 Sun Microsystems 現在是 Oracle) Code Conventions for the Java TM Programming Language。隨著開發時間的拉長,遞交程式的數量變多之後,總是會有幾次忘記加上空白之類的小瑕疵,這種檢查理當交給程式去做。

雖然寫程式沒有 freestyle,但是我們有 checkstyle

閱讀全文 >>

當我們需要一張圖片,慢慢交錯顯示出另外一張圖片的時候,經常使用 TransitionDrawable。繼承自 LayerDrawable 的 TransitionDrawble 的實作,則是在 onDraw 的時候只拿前兩張來交換顯示。

實務上使用時,需要交換顯示的圖片往往不只兩張,這時候就需要一點取巧的做法。

閱讀全文 >>

在 Android 上面想要做兩三個 Tabs,並且希望透過左右滑動切換 Tab 的時候,通常就會用到 ViewPager。若希望每個 Tab 都是一個獨立的 Fragment,我們能使用 FragmentStatePagerAdapter。只是這個 Adapter 的使用方法跟 ListView 或 RecyclerView 的 Adapter 有點不一樣,一不小心就會踩到洞。

測試的方法也不難,只要進到系統設定裡面的開發者選項,把 Don’t keep activties 打開便能測試。就我自己的經驗,在 MainActivity 用了 ViewPager 顯示幾個 Fragments,打開一個新的 Activity 觸發系統將 MainActivity 砍掉,接著回到 MainActivity 的時候就能發現,所有的 View 都是 null。

閱讀全文 >>

在 Android 上要儲存檔案經常會用到 Internal 或 External Storage,對部分的應用程式來說,常見的需求是「把檔案存到 SD card」。

從結論來說,Android 並沒有 SD card 這樣的概念,External Storage 也不一定是外接式儲存裝置。先有這樣的認知,接著就可以問以下幾個問題

  • 有哪些 Storage 可以用?
  • Context 與 Environment 有哪些 Storage 的 API 可以用?
  • 有怎樣的權限問題?
閱讀全文 >>

新聞業在這個世代遇到的挑戰相當大,不論是業內的人或是一般的讀者,對「新聞業」的表現普遍不滿,常有人嘲諷「小時不讀書,長大當記者」,媒體給人感覺是嗜血充滿腥羶色,記者文字水準差勁,固定的用語就那幾個還經常打錯字。

業內的記者,也有許多人感到不滿而離開,常有批評現在的新聞充斥業配文,看一份報紙都不知道是廣告多還是報導比較多。

這些批評我幾乎都認同,大多數新聞媒體的運作方式就是如此,同時很多人嘗試找出解方。我並沒那麼厲害,我也想不到有什麼方法。(真有方法我就賣器官籌錢來投資了!)。只是想整理一下自己對新聞業面臨的困境的想法。底下的內容已經有很多人在各個地方提過了,只是把我所知道的整理起來而已。

我並不認為新聞業現在的問題跟道德有關,只是單純的錢的問題,或說原本的商業模式被網路摧毀了。而新聞的表現水準江河日下,只是結果而已。

閱讀全文 >>

美拉尼西亞社會裡面,由當地人稱為「萬托克」(wantok,由 one talk 而來)的部落組成。每一個萬托克由數十到數千人不等,彼此有親屬關係。萬托克由一個「頭人」(Big Man) 當領袖,頭人不是世襲的位置,而需要靠爭取,成為最受部落居民信任者才是頭人。頭人會分配豬隻、貝殼等資源給部落成員,只要沒有資源可以分配,隨時可能失去領袖地位,被其他人取代。

正在看「政治秩序的起源」這本書,僅從序開始看到第二章而已。序講到「頭人」這個詞讓我有很強的既視感,這不就是地方派系的大頭嗎?

閱讀全文 >>

在新竹、苗栗想要推在地的政治活動,一直都很不容易,參與的人數總是不多。

常聽見人說這兩個縣市的人都不關心政治,關心的人少了,參與政治活動的人自然也少。而我的想法是這兩個縣市的人的生活方式,本來就不容易在工作跟家庭之外有自己的生活空間與興趣,因此更不容易撥出時間參與政治。

閱讀全文 >>

Mockito 是一個常見的 testing framework,這邊稍微紀錄一下我用到的測試寫法,包括

  1. change private variable
  2. specify return value
  3. to verify whether a method is invoked
  4. to verify parameters of a method call
閱讀全文 >>
Next →