Time of Update: 2018-12-03
物件導向編程的基本特徵,眾所周知:1. 封裝性2. 繼承性3. 多態性當然,還會有人提出第四個特性:4.
Time of Update: 2018-12-03
如果編程不注意細節,註定要被細節"調戲"!在 Mobiles class 裡面有很多這樣的判斷: if(code == 1) { kill(); return; } 於是,我就想將其封裝為一個方法,這樣代碼看起來會比較整潔! public void giveUp(int code) { if(code == 1) { kill(); return;
Time of Update: 2018-12-03
如果你對UI效果(4): Button的那點事_01感興趣,可以看看。該篇部落格,分享Button的綁定事件如OnTouchListener、OnCliskListener、OnLongClickListener以及注意事項。單擊事件很簡單,這裡只說一個問題:isPressed()方法。 /** * 點擊事件 * * @author mark * */final class ClickListener implements OnClickListener
Time of Update: 2018-12-03
做 android 開發這麼久,還是不能很熟練的處理各種表徵圖。在一個好的 App 中,介面的好壞直接影響使用者體驗。而表徵圖則是介面的一部分資源,所以很值得重視。不管是menu,還是啟動表徵圖,或者是狀態列的表徵圖,我們需要很好的做出選擇,那麽怎麼樣去做到適應各種像素呢?看下面這張圖:來源:Android 表徵圖ICO設計標準與原則這是一篇好文章。另外,在android源碼中,提供了很多圖片資源。可以借鑒。
Time of Update: 2018-12-03
本來是想用一篇部落格一口氣寫完:如何最佳化 ListView ,但是我發現這樣做吃力不討好,一方面,自己太累,另一方面給人的感覺是在記賬,根本不是在交流。最後還是覺得分開寫會好一點,每一篇突出一個重點比較好。歡迎交流。在這篇部落格中,你可以瞭解到:1)Adapter(適配器)模式簡介2)android Adapter 類簡介3)android Adapter 與 ListView 之間的關係。4)如何自訂 Adapter
Time of Update: 2018-12-03
源碼:public class Demo { public static void main(String[] args) { String src = "java 苦逼的,程式 猿。"; // 字串長度 System.out.println("src length: " + src.length()); // 字串包含的字元個數 System.out.println("src length constains
Time of Update: 2018-12-03
使用自訂的 Adapter,需要最佳化,說到底是最佳化我們自訂的適配器類!再說到底就是最佳化回調方法 getView 方法。 ListView 編程: Adapter 何方神聖? 部落格中,只是簡單的介紹了如何去自訂一個適配器以及注意事項。但是.......如果像 ListView 編程: Adapter 何方神聖? 中的範例程式碼那樣去寫程式的話,那麼估計要被老大BS的,呵呵!那麼,結合 Google IO 的建議、APIDemo 代碼以及
Time of Update: 2018-12-03
部落格 android opensource: Launcher 研究_設定壁紙_01 大致分析了一下 Launcher 壁紙的相關代碼調用關係。但是對於自己來說,還是覺得有點欠缺,今天補上,繼續 Launcher 壁紙的研究。真的希望 csdn 能夠讓自己的部落格別人來補充編輯,這樣可以對技術研究比較深、細一點,利於交流和學習。呵呵,願望希望有一天能夠被實現。再說主題之前,想跟大家交流一個話題:現在學 android 是否還有前途,究竟學什嗎?我剛開始接觸 android
Time of Update: 2018-12-03
只要牽扯到字元編碼的編程,脾氣就會異常的,看著那一堆堆亂碼,就巴不得拿刀砍死它!現在有個這樣的需求:使用印表機列印指定的內容,然後按照指定的協議與裝置通訊。該印表機認識 unicode 編碼的字元。所以,需要將指定內容(String)轉換為 unicode 編碼,然後轉換為對應的 unicode 位元組數組。編碼實現:/** * 將字串轉換為 unicode 字元. * * @param src * 要轉換的字串. * @return byte[] 字串的位元組數組. *
Time of Update: 2018-12-03
下載 android 源碼之後,接下來就是學習或者進行開發。 在開發之前,談一些開發必備知識或者工具,工欲善其事必先利其器嘛!在部落格 http://blog.csdn.net/androidbluetooth/article/details/7014039 中基本上說了開發使用工具。但是我們如何使用模擬器開發呢?!當然你去刪除或者增加app到模擬器就不可以按常規來操作了,花 5 -10 分鐘瞭解一下,如果你有需要。0. 編譯源碼直接在下載的源碼根目錄下面,執行:source
Time of Update: 2018-12-03
個人比較喜歡命令列操作,特別是在 android 開發的時候,方便!在終端敲入命令,會出現關於adb工具的使用協助。adb -help安裝 apk,一般都是使用命令:adb install **在 adb -help 可以看到如下協助:adb install [-l] [-r] [-s] <file> - push this package file to the device and install it ('-l'
Time of Update: 2018-12-03
部落格 http://blog.csdn.net/androidbluetooth/article/details/6725005 簡單介紹了一下如何自訂 view 以及如何為自訂的 view 定義屬性。這篇部落格接著聊聊關於自訂屬性。我們可以在 res/values/attrs.xml 裡面自訂屬性,那麽可以定義哪些屬性,究竟又該如何定義?在 google 提供的 android doc 上面,除了 apidemo
Time of Update: 2018-12-03
Spinner 類似 widget,sdk_api 文檔上面有這樣一句話:Spinner is a widget similar to a drop-down list for selecting items.照著官網的例子,先給沒用過Spinner的同志掃掃盲,step by step 吧!1. 建立項目 SpinnerUsedResources這個名稱主要是想說明該項目,用的是現有資源,即靜態建立 Spinner所需資源。2. main.xml<?xml version="1.0"
Time of Update: 2018-12-03
在pull xml(1): 建立xml檔案文章中主要說了說如何產生xml檔案,該篇部落客要談談如何解析已知的xml檔案。運行介面,如下展示:沒有什麼可以搪塞的,看源碼吧!1. 商務邏輯類PullXMLUtils主要是解析或者產生xml檔案package mark.zhang;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.Writer;import
Time of Update: 2018-12-03
這段時間總是在與C/C++打交道,主要是跨平台資料的傳輸。C++一般使用結構體定義資料,小結一下typedef、define。下面這篇文章來自:http://developer.51cto.com/art/201104/256060.htm,稍加改動。typedef和define的詳細區別typedef是C語言語句,其功能是使用者為已有資料類型取“別名”。 例如: typedef int INTEGER; 這以後就可用INTEGER來代替int作整型變數的類型說明了,如: INTEGER
Time of Update: 2018-12-03
想象這樣一種情景:自訂 View 需要在外界條件改變的時候,改變自己的狀態,並且這個條件改變的同時會發送一條廣播,那麽如何做呢?在 android opensource: Settings 研究_android 組件如何響應語言變化 部落格中,說過我會跟大家交流一下如何在自己定義的 View 中註冊以及接收廣播。在貼代碼之前,先看看 View 的兩個回調方法 onAttachedToWindow、onDetachedFromWindow.從 api
Time of Update: 2018-12-03
本篇部落格是基於上篇部落格http://blog.csdn.net/androidbluetooth/article/details/6605223所寫。1. main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"
Time of Update: 2018-12-03
部落格 Android(四) :更新UI的方法 中提到invalidate()方法,但是由於自己的閱曆不足,沒有過多的說明,只是泛泛而談!本篇繼續探究這個詭異的方法。在閱讀本篇部落格之前,建議您先看看 View編程(1): Window、View與setContentView()基於 Android(四) :更新UI的方法 中的例子,稍作修改:package mark.zhang;import android.app.Activity;import
Time of Update: 2018-12-03
一、遊戲光影的範疇
Time of Update: 2018-12-03
網上有很多牛人研究 Launcher,說的都不錯,但是個人還是覺得在技術方面還是各抒己見的為好,畢竟每個人研究的面不一樣,藉此,也想為自己做個筆記。本部落客要是基於 android2.3.7 的源碼研究 Launcher,開發工具依然使用 Eclipse(見過很多大牛直接使用文字編輯器,拋棄IDE),編譯測試環境選擇 ubuntu ,測試效果採用模擬器。關於 Launcher 的初步介紹以及 Launcher