Browsed by
Category: Android

[Android] 取消自動focus在EditText上的螢幕小鍵盤

[Android] 取消自動focus在EditText上的螢幕小鍵盤

在開發的過程中,發現一進入一個擁有EditText的activity時,小鍵盤會即時跳出擋住螢幕上的畫面。這實在是讓人很困擾的一件事。

想像一下,你在使用某個手機軟體時,軟體中的某個畫面的最上方有一個搜尋列,你一點進去那個畫面,小鍵盤卻擋住了所有的視線,什.麼.都.看.不.到!
為了解決這個擾人的問題,搜尋了一下孤狗大神,才知道原來解決的方法非常容易。

只要在xml中,最外層的LinearLayout(或是其他Layout..whatever),加入以下語法:

android:focusable="true"
android:focusableInTouchMode="true"

即可解決擾人的小鍵盤問題。

Facebooktwittergoogle_plusredditpinterestlinkedinmail
[Android] 在Android google Map中標出自己的位置

[Android] 在Android google Map中標出自己的位置

在閱讀這篇之前,建議可先閱讀這篇:Android MapView與Overlay實作演練,來了解如何建立mapView以及overlay。

那要如何在mapView中標出自己的位置呢?要先利用Location以及LocationManager來取得手機目前的座標位置。取得座標位置之後再放入mapView中,請參照以下程式碼:

Read More Read More

Facebooktwittergoogle_plusredditpinterestlinkedinmail
[Android] Android Out Of Memory(OOM) 的詳細研究

[Android] Android Out Of Memory(OOM) 的詳細研究

最近開發的專案需要處理大量的圖片,將圖片檔案轉換成Bitmap物件時,常常出現Out Of Memory Exception。在Android中,一個Process 只能使用16M記憶體,要是超過了這個限定就會跳出這個異常。要避免這個錯誤就必須使用recycle機制,適時的將不需要顯示的Bitmap物件回收。

Read More Read More

Facebooktwittergoogle_plusredditpinterestlinkedinmail
[Android] Android ImageView的scaletype屬性

[Android] Android ImageView的scaletype屬性

ImageView的屬性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)。android:scaleType是控制圖片如何 resized/moved來匹對ImageView的size。ImageView.ScaleType / android:scaleType值的意義區別:

CENTER /center 按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則截 取圖片的居中部分顯示

CENTER_CROP / centerCrop 按比例擴大圖片的size居中顯示,使得圖片長 (寬)等於或大於View的長(寬)

CENTER_INSIDE / centerInside 將圖片的內容完整居中顯示,通過按比例縮小 或原來的size使得圖片長/寬等於或小於View的長/寬

FIT_CENTER / fitCenter 把圖片按比例擴大/縮小到View的寬度,居中顯示

FIT_END / fitEnd 把 圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置

FIT_START / fitStart 把 圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置

FIT_XY / fitXY 把圖片 不按比例 擴大/縮小到View的大小顯示

MATRIX / matrix 用矩陣來繪製

Facebooktwittergoogle_plusredditpinterestlinkedinmail
[Android] Use MicroLog4j in Android

[Android] Use MicroLog4j in Android

之前寫的專案一直在無法預期的時間發生FC(Forced close),為了抓到這隻bug,必須在軟體中記錄log。雖然Android中已經有Logcat的機制,但是我總不可能手機一直連接在電腦上,在程式被FC之前一直盯著console看吧?所以最好的辦法就是寫Log,寫Log是我自己要看的,正式的版本不會加入此功能。

Read More Read More

Facebooktwittergoogle_plusredditpinterestlinkedinmail
[Android] Android MapView與Overlay實作演練

[Android] Android MapView與Overlay實作演練

Android程式能夠很方便的跟google API做結合,而在手機建立MapView之前,必須先跟google申請google Map API Key。Key又分為兩種,一種是在開發測試時使用的debug key,另一個為軟體正式上架使用的key,兩者是不能互換使用的。也就是說,在開發時使用的Google Map API Key與正式上架的API Key是不一樣的。

Google MAP API裡面寫的很清楚,在此不做贅述。

Read More Read More

Facebooktwittergoogle_plusredditpinterestlinkedinmail
[Android] android.database.CursorIndexOutOfBoundsException

[Android] android.database.CursorIndexOutOfBoundsException

這幾天在寫有關於Android資料庫SQLite的一些方法。在測試程式的過程中,一直出現ERROR/AndroidRuntime(865): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1這個例外訊息,檢查程式很多遍並沒有發現錯誤,查了一下exception的來源為Cursor.getString(index),我還特別確定了API中的寫法,寫法沒有錯啊,那為何會有exception產生呢?

仔細看了一下,原來Cursor.getString(index)當中的index變為-1了,難怪會有exception產生。

此時只要把Cursor的指標指為1就能夠正常運作。可加上以下判斷式:

if(cursor != null){
    cursor.moveToFirst();
}
Facebooktwittergoogle_plusredditpinterestlinkedinmail