上一個自己做的練習和作品主要集中在View、螢幕切換等一些與圖形繪製相關的內容和技術上,這一階段給自己制定的計劃是學習和熟悉一下各個UI組件。因為鄰近春節,所以想簡訊祝福程式。選定內容後,定的學習點主要有:
1. 怎麼傳送簡訊
2. 怎麼發送多媒體訊息
3. ListView等UI的應用
4. 各個Activity資料傳遞
5. 電話連絡人的選擇
6. SQLite應用
按照自己的學習點,劃分了幾個介面,並且繪製了簡單的原型(ps:同時規划了每個介面的廣告位,不管以後做成什麼樣,該預留的擴充還是需要預留的。),做完這些準備之後,我開始了實現之路。
首先,先繪製各個Activity,把各個Activity串聯起來,使得介面能夠順暢流轉,在這之間,又詳細得查閱了一些Intent等資訊,對startActivityForResult也做了瞭解。當時看到的介面還沒自己畫的原型漂亮。
然後,對傳送簡訊做了資料查閱,經過資料的查閱和閱讀,網上的資料還是很豐富的,對簡訊發送的一些簡單原理有個基本的瞭解,通過簡單的例子類比,在真機上做了一下測試(網上說了N長還不如自己的真機測試,一測就知道具體的效果了,不需要瞎猜),效果達到了自己實際想要的,然後對自己的簡訊發送進行了模組封裝,為以後如果其他程式需要可以直接提取當前模組拼裝。
多媒體訊息是比較麻煩的一件事,網上找了半天,沒有後台直接傳送簡訊的API,只能調用系統的Activity,比較麻煩,為了不使得自己死磕在這個技術點上,對一些Frame內部代碼做了簡單瞭解後,調用系統的Activity,在真機上看了一下效果,我想要後台發送,沒達到自己的期望值。自己的多媒體訊息可以在螢幕上自己定製,自己對一些截屏技術和IO操作做了實驗,並且對這幾個點做了模組封裝,覺得在後面其他的程式編寫中能夠使用上。
ListView在最最開始自己學習的時候使用過,一直以為自己對ListView有些瞭解,但在這實際的深入使用中,發現瞭解的很少,對ListView的背景定義,Item的樣式定義(Item看作一個螢幕也不過分,所以想想,一個介面要用兩個xml布局,用Item是不是很合適,而且還是動態,只是對ListView和Item的樣式做些定義和改變。),再做的過程中,碰到了Item的分隔線,自己定義多選,捲軸等大大小小的細節點,在真機測試的時候,又碰到了滾動時螢幕變黑的情況(這在模擬器上看不出來,所以當初找資料的時候沒看到變黑什麼意思~~~),經過這些大大小小的細節處理,對ListView的理解又加深了。
這次設計布局的地方很多,自己採用了xml和代碼兩種方式結合布局,對怎麼布局,布局後再什麼位置,像gravity和layout_gravity有了更深一層次的瞭解,現在來看UI的一些布局機制和Swing和Ext都很相似,往往都相通,特別LinearLayout布局和Ext的Form和Column套路基本一樣。
電話連絡人比較簡單了,學習了ListView後,這些相對比較簡單了,只是讀取號碼的點注意一下就行。真機上實驗了一下讀取SIM卡,現在覺得有些手機內建的電話薄為什麼就不過濾掉重複相同的呢(雙卡),很簡單的事,另外根據效率來看,現在手機上的電話薄應該做了一些最佳化手段。
對於SQLite,自己也想實踐一下,雖然平時自己在做大項目應用的時候,對Oracle,Informix相對比較熟,但對SQLite還很沒接觸過。SQLite的命令列操作、第三方工具、DDL,DDM,同時對SQLiteOpenHelper有了一定的瞭解,自己封裝了一個資料池。
對於一個新人,自己想到一個Idea就開始動手吧,在動手的過程中總有你想能學習的地方。
願每個android者,都有一個美好的2012。
附上程式首頁,圖片處理能力有限,發現圖片處理相當費時間,可能自己對圖片處理不是那麼熟悉也有關係,最近正在惡補PhotoShop(又一個學習點)。
上一個塗鴉:
經典童年遊戲(桌遊大富翁)