Holidaybear's
2014/12/09
Google Play services 6.5: Selectively compiling APIs
Google Play services 升上 6.5 之後,其中一個特色就是多了
阿文的次元
切割功能,現在終於可以不用將整包 Google Play services 納入只為了使用其中幾種 API。舉例來說,之前為了支援 GCM 跟 Cast,我必須在 build.gradle 寫入:
現在我可以選擇性的只加入我需要的:
這樣就可以有效避免 method 數量超過 65,536 個上限的問題。
Reference:
http://android-developers.blogspot.tw/2014/11/google-play-services-65.html
http://developer.android.com/google/play-services/setup.html
2014/08/12
Cast menu, while casting
前陣子在看
Google Cast Design Checklist
的時候,他推薦當你正在投射螢幕時,可以在 cast menu 上實作一些細節及簡單的功能操作,不過在
Android Sender App Development
沒有看到關於這方面的補充,所以好奇去翻了一下要如何做出這樣的效果,最後發現只要在
MediaRouteActionProvider
加上自訂的
MediaRouteControllerDialog
就可以了。
於是參考這張圖練習寫了個 sample :D
2014/07/31
Playing HTML5 video on fullscreen in Android WebView
Android WebView 如果碰到 HTML5 的 <video> tag 時,雖然可以正常播放影片,但是點選 fullscreen 卻沒有反應。目前找到的解法是先到 AndroidManifest,在要播放影片的那一面加上 HardwareAccelerate,
接著覆寫
WebChromeClient
的 Method:
onShowCustomView
,
onHideCustomView
主要目的是在 onShowCustomView 時,將得到的 View 放到最上層;在 onHideCustomView 時把剛才的 View 移掉,將原本的 WebView 放回來。
Reference:
Android Webview app won't let video player go full screen
2014/06/25
.gitignore
最近同事不小心將 project 的 .idea 設定 commit 了,我才認真思考了一下要如何避免這種問題,為什麼我們在 .gitignore 忽略了 .idea 也沒效果,那是因為我們在那之前有先將 .idea push 上去過才會發生這種無法忽略的情況。於是我翻了一下 Google 在 GitHub 上的 Android project,參考了他們的 .gitignore
接下來我們還需要移除在 GitHub repo 上不需要的檔案,以 .idea 為例,
這樣以後這些非必要檔案就不會再出現在異動清單中,造成 commit 手誤了。
另外還可以參考 .gitignore 產生器:
gitignore.io
2014/05/19
Complete Android Fragment & Activity Lifecycle
Reference:
android-lifecycle (GitHub project)
2014/05/10
Save ArrayList to SharedPreferences
如果我們想要將 ArrayList 物件儲存到
SharedPreferences
裡,該如何做呢?
在 API level 11 之後,可以利用 Set 達到目的。
但如果需要同時支援以下的版本,可以對 ArrayList 做 serialize 及 de-serialize 後存取,
這裡使用到了
ObjectSerializer (Apache Pig project)
,下面是稍作修改的版本。
Reference:
Save ArrayList to SharedPreferences
2014/05/09
Random print "hello world"
Reference:
Why does this code using random strings print "hello world" ?
較新的文章
較舊的文章
首頁
訂閱:
文章 (Atom)