2014年2月16日 星期日

Android Free Chart Library Comparison

列一下 Android 的圖表 Library 比較以及看起來的優缺點。

較推薦
  1. AChartEngine:https://code.google.com/p/achartengine/
    仍在維護、支援圖表種類夠多、沒針對 dpi 處理。
  2. AFreeChart:https://code.google.com/p/afreechart/
    久未維護、支援圖表種類夠多、沒針對 dpi 處理、沒針對螢幕大小處理。
  3. AndroidPlot:https://bitbucket.org/androidplot/androidplot/overview
    仍在維護、支援圖表種類夠多、似乎有針對 dpi 處理
其他
  1. HoloGraphLibrary:https://bitbucket.org/danielnadeau/holographlibrary
    仍在維護、支援圖表種類少、有處理 dpi、有處理螢幕大小。
  2. GraphView:https://github.com/jjoe64/GraphView
    較少在維護、支援圖表種類少、dpi 及螢幕尺寸問題因不符需求不確定。
  3. StockChartView:http://stockchartview.org/
    仍在維護、較新出、圖表支援種類尚不足?、未處理 dpi



Convert Project From Subversion To Git Using git2svn

從 SVM 匯入專案到 Git
可手動用 git svn 或是用 git2svn。
而 git2svn 也是 GitHub 推薦的移轉方式

GitHub:https://github.com/nirvdrum/svn2git


用法可參考 README 的說明,不同格式的 svn 配置方式會需要不同的參數。
一般來說用第一個就可以,不過也有例外。

例如這次要將 AChartEngine 做一份 Git Mirror。
由於 AChartEngine 只有 trunk 一個目錄(見上方連結),因此用了第三個方式:

svn2git http://svn.example.com/path/to/repo --trunk trunk --nobranches --notags

2014年2月13日 星期四

Intent Filter android:scheme Must Be In Lowercase

從 Android 4.4 開始,內建瀏覽器改為 Chrome。
而 Chrome 在解讀網址時,會將網址的 scheme 轉為小寫。
因此在實作上要遵從官方的說法。

且官方原本也就建議 Intent Filter 的 scheme 和 host 都必須使用小寫。
官方說明:http://developer.android.com/guide/topics/manifest/data-element.html

2013年12月18日 星期三

2013年12月9日 星期一

Do not put EditText In ListView, Use ScrollView Instead

由於有個需求需要控制好記憶體用量,因此決定在 ListView 內塞 EditText,但是因為鍵盤跳出時要能夠讓 ListView 依然能夠捲到最底,因此設上 android:windowSoftInputMode="adjustResize" ,但會讓 ListView 改變大小重畫,導致 EditText 失去 focus 狀態。

因此將 Activity 設為 android:windowSoftInputMode="adjustPan" 避免這種問題。 但是卻又因為這樣會不讓 View 正確的縮小。

所以到最後還是以 ScrollView 實作,並設上 android:windowSoftInputMode="adjustResize" 在鍵盤跳出時更改 ScrollView 的大小,至於圖片的記憶體控管暫時沒有實作,等待日後需要放進大量圖片時再做修正。

Android WebView Will Not Trigger WebViewClient.shouldOverrideUrlLoading When Click Anchor

Android 的 WebView 在點選頁面上的 anchor 時是不會觸發到 shouldOverrideUrlLoading 的。

如:
<a href="#myanchor" target="_blank">不會觸發</a>
<a href="http://www.google.com#myanchor" target="_blank">會觸發</a>


小小抱怨一下,Android 的 WebView 的眉眉角角已經多到足夠特地開一個 Tag 出來寫了XD

2013年10月16日 星期三

Application Cannot Launch From Eclipse

當程式要測試時出現 ActivityManager: java.lang.SecurityException: Permission Denial
且程式無法自動跑起來。

有兩種可能性:

  1. 重複定義了兩個 Launcher 的 Activity 在 AndroidManifest.xml,如:連結
    拿掉其中一個定義即可。
  2. 修改了 Launcher 沒有 Clean ,導致 Launcher 不合。
    Refresh、Clean 過重新執行即可。


2013年10月7日 星期一

Genymotion Multi Touch On MacOSX

在 Mac 版的 Genymotion 的多點觸控用法為

  • 縮放:放大 Ctrl + 左鍵按下往左拖,縮小 Ctrl + 左鍵按下往右拖
    • Zoom In:Ctrl + Mouse Drag Left
    • Zoom Out:Ctrl + Mouse Drag Right
  • 俯角:前傾 Ctrl + 左鍵按下往上拖,後傾 Ctrl + 左鍵按下往下拖
    • Tilt Forth:Ctrl + Mouse Drag Up
    • Tilt Back:Ctrl + Mouse Drag Down
  • 旋轉:逆時鐘旋轉 Ctrl + Shift + 左鍵按下往左拖,順時鐘旋轉 Ctrl + Shift + 左鍵按下往右拖
    • Counterclockwise Rotation:CTRL + Shift + Mouse Drag Left
    • Clockwise Rotation:CTRL + Mouse Drag Right

2013年10月1日 星期二

Eclipse Trace Code Tips On OSX

以 OSX 上的 Eclipse Java Editor 為例
記錄一下裡面常用的一些預設熱鍵

1. 檔案管理

重新整理:F5
關閉目前檔案:Command + W
關閉全部檔案:Command + Shift + W
儲存目前檔案:Command + S

2. 編輯

自動補完:Option + /
修正錯誤提示:Command + 1
重新命名變數或函式:Command + 2 然後按 R
註解單行:Command + /
刪除單行:Command + D

2.1 游標

移到行首:Command + ←
移到行末:Command + →

3. 瀏覽

跳到該變數或函式的定義:Command + 滑鼠左鍵
跳到上一個看的位置:Command + [
跳到下一個看的位置:Command + ]

查詢變數或函式上的引用地方:Command + Shift + G
查詢 Class 繼承:Command + T



同場加映大抄:http://isagoksu.com/2009/development/developer-tools/dislikes/eclipse/osx-keyboard-binding-cheat-sheet/