最近手機從 htc 換成 Nexus 5x,很多原本用慣的 htc 內建 App 都要自己重新找替代品,在氣象方面找到的大部份畫面我都不喜歡,於是打算利用幾個週未晚上的時間自己製作了一個基於 Material Design 的版本,內容當然是來自中央氣象局,所以資訊的豐富程度應該會比 Google 氣象來得充足,正好是一個從頭寫起的乾淨專案,所以很適合用來一邊寫一邊 copy 程式碼做紀錄,這篇就是在記錄怎麼從單一 MainActivity 改到有 Material Design 規範的 Navigation drawer 並將 ActionBar 換為 Toolbar。
首先來讀一下 Material Design 的 Drawer guideline:Navigation drawer
2015年12月28日 星期一
2015年4月18日 星期六
Android Accessibility
關於 Android 的無障礙支援文章非常非常的少,中文搜尋結果大多都是將 Android Developer 官方文件翻譯成簡中的資源,繁體中文的資料文章和範例似乎一個都沒有,所以我想還蠻適合來仔細的寫一篇 Android Accessibility 實作教學…
2015年3月22日 星期日
9-patch 紅線標示作用
9-patch 圖檔上下左右的黑線,對於 Android App 的開發者來說應該是相當的熟悉,但在官方的一些 sample 專案中可能會看到畫著紅線的 9-patch 圖檔,這是在 Android 4.3 ( Level 19 ) 才開始支援的標示方法。
2015年3月21日 星期六
2015年2月18日 星期三
2015年1月30日 星期五
使用 Google Play-Service 而造成 Unable to execute dex
Google Play-Service Library 算是撰寫 App 必用的幾個 Library 之一,但很麻煩的一點是它很大,很多東西不一定會用到,以我的專案為例,目前就 Google Analytics、GCM、Google Cast 這三個而已,而一個 Java dex 檔案中受限於 65536 個 methods,身邊不少開發者朋友因為使用了 Play Service 而發生爆 method 的狀況。
2015年1月24日 星期六
使用 Lint 檢查是否使用大於 minSDKVersion 的 API
Lint 是一個 Android SDK 內建的靜態分析工具,放在 SDK 的 tools 資料夾底下,如果已經將編譯工具轉換至 Gradle 後,每次編譯皆會自動執行 Lint 來檢查專案的安全性、效能等潛在問題。
2014年10月21日 星期二
Code Snippet in Android Studio
在使用 Android Studio 撰寫程式時,很常輸入 inn 再加上 tab 來產生 if (obj != null) 的程式碼區段,這種程式碼片段是可以自行建立的,在 Android Studio 的 Preference / IDE Settings / Live Templates 中可以看到全部的 Code Snippets 與加入新的 Snippet。
2014年8月4日 星期一
Chromecast 開發經驗
Google 的 Chromecast 於 2014 年 6 月在日本開賣了,由於我們的產品在日本是開放下載與付費的,所以比國內的其他公司較早接觸到這項新產品,此文章簡單的介紹 Google Cast 的使用、功能實作流程與開發上的常見錯誤。
開發文件:Google Cast
官方網站:Chromecast
設定軟體:Android App、iOS App
開發文件:Google Cast
官方網站:Chromecast
設定軟體:Android App、iOS App
2014年6月18日 星期三
如何取得 WebView 內 Javascript function 的 return 值
最近公司的案子有一個需求,某些由編輯撰寫的文章要在 App 內以 WebView 的方式呈現,而分享文章使用 App 內的 Native Button 來操作,因為分享的連結和 App 內 WebView 中顯示的不一定相同,所以不能直接拿文章的 URL 來做分享,相關情境和撰寫 Web 的部門開過會後,決定在 Web 內加一個 Javascript 的 function 回傳文章的分享連結。
標籤:
android,
windows phone
2014年4月28日 星期一
Common Errors in Google In-App Billing
前一陣子接觸了 Google Play 的 IAB 串接,測試途中發生幾次小卡關,由於同時間和 iOS 團隊皆在同個產品中實作應用程式內付費功能,從這個經驗中也順便看到了兩個平台的差異,寫篇文章來記錄一下 IAB 的概念及常見錯誤處理方式。
2014年4月6日 星期日
Google Analytics for Android
Google Analytics 是一套用戶行為追縱與分析的工具,透過 GA SDK 可以方便的在應用程式原始碼各處以簡單的指令記下用戶的行為,並透過 SDK 將行為記錄傳回 GA 的伺服器,以便透過 GA 方便的管理介面做分析,產品企劃人員可以借由這些統計結果判斷哪些功能很常被使用,需要加強效果及將入口移至明顯處,哪些功能較不常用,可以將入口移到較不顯眼的地方。市面上類似的工具不少,例如 Flurry 就是其中一個類似的工具,但 Flurrry 的即時性並不如 GA 來得高,我們公司的 App 在由 Flurry 轉換到 Google Analytics 時版本是 V3,而在我記錄這篇文章時,已經推出 V4 版本了,除了 SDK 需更換之外,使用方法的差異也不算小。
2014年3月25日 星期二
Android Wear Developer Preview
前幾日 Google 釋出 Android Wear Developer Preview,包括模擬器及一個 preview SDK,此處簡單的記錄下模擬器的安裝方式及 Preview Project 中所看到的功能。
2012年6月24日 星期日
取出 WebView 中的原始碼
手上的 Android 專案需碰到一種使用不太方便的會員認證機制…
某公司開發的會員認證機制是提供我們一個網頁…
用戶自行輸入帳號密碼按了確定後…網頁再經過一連串的 Redirect
最後將資訊直接印在網頁的 body 裡面並做 hidden 處理…
某公司開發的會員認證機制是提供我們一個網頁…
用戶自行輸入帳號密碼按了確定後…網頁再經過一連串的 Redirect
最後將資訊直接印在網頁的 body 裡面並做 hidden 處理…
2012年5月26日 星期六
Debug Certificate expired
最近必須把某個很久沒碰的 Android App 做些小改版…
從 Git 上拿下來立刻編譯看看…結果發生 Debug Certificate expired 錯誤…
從 Git 上拿下來立刻編譯看看…結果發生 Debug Certificate expired 錯誤…
2011年9月28日 星期三
WebView 的 External Object 範例
最近弄到的技巧…順便寫個小範例…
記錄一下如何在 WebView 中加入一個 JavaScript Method 並讓網頁回傳參數給 App…
記錄一下如何在 WebView 中加入一個 JavaScript Method 並讓網頁回傳參數給 App…
2011年8月23日 星期二
scrollTo 沒反應
撰寫 Android 的專案時畢竟大多數情況都是在小尺寸螢幕上顯示…
一直以來都很依賴 ScrollView 或 HorizontalScrollView 讓用戶捲動過多的資訊…
有次要自動幫用戶捲動到重要資訊的位置時…卻發現下了 scrollTo 沒反應…
一直以來都很依賴 ScrollView 或 HorizontalScrollView 讓用戶捲動過多的資訊…
有次要自動幫用戶捲動到重要資訊的位置時…卻發現下了 scrollTo 沒反應…
2011年7月9日 星期六
在 TextView 上顯示圖片
有時我們會利用 Html.fromHtml 將 html 字串丟給 TextView 以顯示較為明顯的文字…
若該 html 中有圖片時,是否能在 TextView 上顯示呢?答案是可以的…
利用 Html.formHtml 其中一個 Overload 傳入 ImageGetter callback
若該 html 中有圖片時,是否能在 TextView 上顯示呢?答案是可以的…
利用 Html.formHtml 其中一個 Overload 傳入 ImageGetter callback
2011年7月2日 星期六
Activity android:launchMode
在 Manifest.xml 中每個 Activity 都有個 launchMode 可以調整…
如果專案中每個 Activity 都很獨立,一般是不太需要注意到這個屬性…
但若是專案中的某個 Activity 有可能 startActivity 自己…
例如一個用來顯示資料列表的 Activity 可能在點了某項目後還是利用同一個類別顯示子項目…
那 launchMode 就需要注意嘍…使用了錯的 launchMode 可能造成操作流程不符合預期…
如果專案中每個 Activity 都很獨立,一般是不太需要注意到這個屬性…
但若是專案中的某個 Activity 有可能 startActivity 自己…
例如一個用來顯示資料列表的 Activity 可能在點了某項目後還是利用同一個類別顯示子項目…
那 launchMode 就需要注意嘍…使用了錯的 launchMode 可能造成操作流程不符合預期…
簡易的 interface 應用範例
最近有點覺得自己在 Android 專案中將 Broadcast 用過頭了…
漸漸的在 refactor 的過程將一些 Broadcast 以 interface 的方式替換掉…
漸漸的在 refactor 的過程將一些 Broadcast 以 interface 的方式替換掉…
訂閱:
文章 (Atom)