安卓開發的小技巧(3)

Jyy發表於2016-02-23

又見面啦!歡迎來到安卓開發技巧系列的第三篇博文。

我們很高興至今為止很多人已經發現了這個系列的有趣之處,很感謝你們通過評論和電子郵件的方式向我們表達你們的支援!

說給第一次來這裡的朋友吧,很久以前我們(安卓團隊)就已經在內部互相分享每週學習到的小技巧了。

最近,我們開始在部落格上與其餘的開發團隊分享我們的小技巧。

你可以在 這裡這裡 找到我們較早以前的兩篇博文。

可能最近某個星期我們將分享最早的幾篇小技巧文章來博君一笑!好吧,言歸正傳,下面就是這周的小技巧。

技巧 1

如果你正在使用 ZXing 庫中的 QRCodeWriter 來生成 qr 碼,那麼(用這種方法)生成大尺寸影像是相當慢的。實際上,你可以傳遞一個 0x0 的尺寸,這時將返回一個儘可能最小尺寸(每塊是1畫素)的 BitMatrix。

然後你可以把這個 matrix 寫進 BitmapDrawable,並將其設定為某些檢視的背景。

不過,你需要首先確保在 drawable 中呼叫了

,這樣(影像)在縮放時不會變得模糊。

我使用 Bitmap.Config.ARGB_4444,因為我需要將 QR 碼的背景設定成透明。如果你希望是黑白色的,可以使用 Bitmap.Config.RGB_565。

同時,如果你希望操作安全,你可以改變 QR 碼的建立方式為

以防類庫在未來不再接收 0x0 的尺寸,因為我相信一個 QR 碼不可能小於1.0×1.0。

– 技巧貢獻者, James Sun

技巧 2

下次你需要使用“adb shell”時可以鍵入“adb hell”試試。相信我。

– 技巧貢獻者, Tyler Romeo

技巧 3

將會返回給你一個連線輸入字串的字元序列,並且保留了它們之間的間距。

– 技巧貢獻者, Walker Hannan

技巧 4

“葉子”檢視在觸控事件中享有優先權,但是“根”檢視在攔截觸控事件時享有優先權,所以當你需要的是有子檢視正在使用的觸控事件時,換成攔截事件吧。

同時,如果這個子檢視正在呼叫

但是你並不希望它起作用,那麼除了覆蓋它不要做任何事。

– 技巧貢獻者, Frank Doyle

技巧 5

你可以使用 SqliteDatabase 的 beginTransaction() 和 endTransaction() 來完成批量操作,但是你必須確保呼叫了

,否則一旦呼叫endTransaction(),你所做的改變將會回滾。

– 技巧貢獻者, Walker Hannan

技巧 6

如果你正在做測試,你可能應該謹慎使用靜態方法!為什麼?在眾多其他理由中,較恰當的一個理由是安卓框架提供的方法不能在測試中使用,因為他們是靜態方法所以你不能將它們模擬出來。

– 技巧貢獻者, Frank Doyle

技巧 7

如果你正在做測試,你應該試試 Mockito。它會幫助你將複雜物件依賴替換成超級簡單的替換物。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

安卓開發的小技巧(3) 安卓開發的小技巧(3)

相關文章