Time of Update: 2018-12-07
建立完自訂的控制項後,你可以像使用其他Android控制項一樣,在代碼或layout中使用它們。下面的程式碼片段顯示了在重寫的onCreate方法中,如何建立CompassView並設定給Activity: @Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);CompassView cv = new CompassView(this);setContentView(cv);cv.setBearing(45
Time of Update: 2018-12-07
為了建立一個新的Activity,你需要繼承Activity類,定義UI,實現功能。新的Activity的最基本的架構代碼如下所示: package com.paad.myapplication; import android.app.Activity;import android.os.Bundle;public class MyActivity extends Activity {/** Called when the activity is first created.
Time of Update: 2018-12-07
為了讓新的widget有互動性,它需要響應使用者事件,如按鍵按下,螢幕觸摸和按鈕點擊等。Android提供了一些虛的事件處理器來與使用者輸入互動: ❑ onKeyDown當裝置按鍵被按下時調用;包括D-pad,鍵盤,掛機,呼叫,回退和照相按鈕 ❑ onKeyUp當使用者釋放按下的鍵時調用 ❑ onTrackballEvent當軌跡球移動時調用 ❑
Time of Update: 2018-12-07
除非你總是需要一個100×100像素的控制項,否則,你必須要重寫onMeasure。 onMeasure方法在控制項的父元素正要放置它的子控制項時調用。它會問一個問題,“你想要用多大地方啊?”,然後傳入兩個參數——widthMeasureSpec和heightMeasureSpec。它們指明控制項可獲得的空間以及關於這個空間描述的中繼資料。 比返回一個結果要好的方法是你傳遞View的高度和寬度到setMeasuredDimension方法裡。 接下來的程式碼片段給出了如何重寫onMeasu
Time of Update: 2018-12-07
基本的View類代表一個全空的100×100像素的正方形。為了改變控制項的大小和顯示更炫的視覺效果,最具代表的,你需要重寫onMeasure和onDraw方法。 在onMeasure方法裡,新的View會依據給的邊界條件來計算它要佔據的高度和寬度。在onDraw方法裡,通過在畫布上畫畫來建立視覺介面。 接下來的程式碼片段給出了一個新的View類的架構代碼,我們將在接下來的章節更加深入的討論: public class MyView extends View {// Constructor
Time of Update: 2018-12-07
建立全新的Views給予你的權力,可以從根本上改變應用程式的外觀和感覺。通過建立自己的控制項,你可以建立獨一無二的適合自己使用者需求的UI。從一個空的畫布上建立新的控制項,你需要擴充View類或SurfaceView類。 View類提供了一個畫布對象、一些draw方法和Paint類,使用屏面圖形技術來建立視覺介面。然後,你可以重寫使用者事件,如螢幕觸摸或按鍵按下來提供互動性。在一些不需要極其快速的重繪和3D圖形的情況下,View基類提供了相當輕量級的解決方案。 SurfaceView類提供
Time of Update: 2018-12-07
複合控制項是原子的、可重複使用的widget,它包含多個子控制項,以某種布局方式聯絡在一起。 當你建立一個複合控制項的時候,你需要定義布局,外觀和它包含的Views間的相互作用。複合控制項通過擴充一個ViewGroup建立。為了建立一個複合控制項,你需要選擇一個最適合放置子控制項的layout類來擴充它,如下面的架構代碼所示: public class MyCompoundView extends LinearLayout {public MyCompoundView(Context
Time of Update: 2018-12-07
第2章中的To-Do List例子使用TextView(在ListView中)顯示每一個item項。你可以通過建立新的TextView擴充,重寫onDraw方法來定製一個列表的外觀。 在這個例子裡,你將建立一個新的TodoListItemView,它會讓每個item項看起來像在記事本上一樣。當完成時,你定製的To-Do List應該看起來和圖4-2一樣。 圖4-2 1. 建立一個新的TodoListItemView
Time of Update: 2018-12-07
在這一章,你學習了怎樣使用鬆散得有聯絡的應用程式組件來設計強大的應用程式:Activity、Service、Content Provider、Intent和Broadcast
Time of Update: 2018-12-07
ADT外掛程式程式包含了一個可視化的Manifest Editor工具,來管理manifest檔案,而不是必須直接操作XML。在Eclipse中使用Manifest Editor,通過右擊工程檔案夾中的AndroidManifest.xml檔案,選擇“Open with ➪ Android Manifest Editor”方式開啟。在3-1圖中顯示了Android
Time of Update: 2018-12-07
擴充存在的Views,建立組合的widgets,建立獨一無二的新控制項——這些能力能為你的特殊工作流程建立漂亮的UI。Android允許你繼承現有的widget工具箱並實現你自己的View控制項,為裁剪UI提供了所有的自由,從而使使用者體驗增加到最大極限。 當你設計UI時,在自然美與實用性間平衡是很重要的。在建立自己定製的控制項的威力下,帶來了必須空手重新構建它們的誘惑。儘可能的經得起誘惑驅使。對於使用者來說,其他一些Android應用程式中的標準控制項都是相似的。在小的螢幕上,使用者往往
Time of Update: 2018-12-07
一個新的Activity以一個誘惑人的空螢幕開始,在其上你可以放置自己的UI。為了設定UI,調用setContentView方法,傳遞View的執行個體(一般是一個layout)去顯示。由於空螢幕不是特別的令人鼓舞,所以,絕大多數你在重寫onCreate處理函數的時候都會使用setContentView來指定Activity的UI。 setContentView方法既可以接受一個layout的資源ID(如第3章所述),也可以是一個View執行個體。這個允許你在代碼中定義UI,或者使用外置l
Time of Update: 2018-12-07
在地震例子中,這一次的修改你將使用Alarm來替代Timer,定期執行網路更新。 1. 建立一個新的EarthquakeAlarmReceiver類,擴充BroadcastReceiver。 package com.paad.earthquake;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class
Time of Update: 2018-12-07
每一個Android應用程式套件組合含一個manifest檔案——AndroidManifest.xml,儲存在工程的根目錄中。該檔案定義了應用程式的結構和中繼資料以及它們的組件。 它包含組件(Activity,Service,Content Provider和Broadcast Receiver)的節點,這些組件構成了整個應用程式。並且使用Intent
Time of Update: 2018-12-07
Service是在Android平台上開發應用程式最令人信服的原因之一。在這一章,你學習了在應用程式隱藏在背景情況下如何使用這些不可見的程式組件來執行操作。 你還瞭解了Toast,它是一個轉瞬即逝的訊息框,能在不竊取焦點或中斷工作流程下顯示資訊給使用者。 你還在Service和Activity中通過NotificationManager來發送警告給使用者,通過定製的LED,震動樣式和音樂檔案來傳達詳細的事件資訊。 使用Alarm,你可以在裝置上預先設定事件或動作,通過Intent來廣播動作或啟
Time of Update: 2018-12-07
如上描述,在Android中的所有視覺組件都是繼承自View,並且可以隨意轉換為View。你將經常看到View會轉換成control或widget,就和你在開發其他的GUI程式一樣。 ViewGroup類是View的擴充,被設計用來容納多個View。一般說來,ViewGroup用在構建原子的、可重複利用的組件(widget)和管理子View的布局上。ViewGroup的其他功能就是用作Layout。 由於所有的視覺元素繼承自View,上述的許多元素可以互換。為了方便,control一般從Vie
Time of Update: 2018-12-07
殺死哪個進程來回收資源由進程中的應用程式的優先順序決定的。應用程式的優先順序與它的組件的最高優先順序相同。 當兩個應用程式的優先順序相同時,那個長時間處於較低優先順序的進程會被先殺死。進程的優先順序同樣受進程間依賴影響,如果一個應用程式依賴於另外一個應用程式的Service或Content
Time of Update: 2018-12-07
為你的應用程式建立複雜的、富有直觀力的UI是極為重要的。保證它們很漂亮,且很容易去使用,它們的功能性也可以考慮作為基本的設計。 引用Stephen Fry在《Substance in Design of Digital Devices》中提到的關於style的重要性的話語: As if a device can function if it has no style. As if a device can be called stylish that does notfunction
Time of Update: 2018-12-07
在你寫Android應用程式之前,瞭解它們是如何構成以及它們的生命週期是很必要的。在這章中,你將瞭解到很多組成Android應用程式的零散的但有聯絡的組件(它們是如何通過Android manifest綁定到一起的)。接下來,在瞭解Activity組件之前,你將瞭解到怎樣以及為什麼使用外部資源。 在最近的幾年裡,大家開始轉向Managed 程式碼的架構開發,例如Java虛擬機器,.NET
Time of Update: 2018-12-07
* http://files.cnblogs.com/xirihanlin/DL090909@cc-Earthquake.zip除了第7章中的關於Google Map部分內容外。用到的知識點: * Preference資料共用 * Service建立與啟動 * ContentProvider建立與使用 * Internet下載 * XML解析 * Notification建立和使用 * Notification的進階特性:發聲、閃光和震動 * Intent廣播 *