Time of Update: 2017-02-27
ViewFilpper 是Android官方提供的一個View容器類,繼承於ViewAnimator類,用於實現頁面切換,也可以設定時間間隔,讓 它自動播放。又ViewAnimator繼承至於FrameLayout的,所以ViewFilpper的Layout裡面可以放置多個View,繼承關係如下:本樣本 通過ViewFlipper和GestureDetector.OnGestureListener實現自動播放和手勢滑屏事件,先看效果:Activityimport
Time of Update: 2017-02-27
Android SDK對應沒個定義在res目錄下的資源都會定義一個維一的資源ID。在編譯時間會在gen目錄下產生 R.java , 資源ID的 格式為 R.[type].[id] 類型為資源類型如anim, array, attr等可以在代碼或是XML 資源檔(如layout, style中)訪問這些資源。Context類提供了訪問資源的方法,一是直接通過如getText, getString
Time of Update: 2017-02-27
android.Content包定義了一些類,這些類主要用於在裝置上訪問或是發布資料,主要有三個包構成。Content 共用 (android.content) 主要用於在Application的各個組件自己共用一些資料,主要的列有Content Provider,ContentResolver用於管理和發布資料。 Intent,IntentFilter 用於Application不同組件之間發送訊息。Package 管理 (android.content.pm) 用於訪問Android
Time of Update: 2017-02-27
這個例子需要Android系統中安裝了支援RecognizerIntent.ACTION_RECOGNIZE_SPEECH的應用,比如Google的 Voice Search 應用。模擬器上預設沒有安裝,可以參見如何在Android emulator上安裝 APK 在模擬器上安裝一個Voice Search。本例 VoiceRecognition首先通過PackageManager檢測本機是否安裝了支援RecognizerIntent.ACTION_RECOGNIZE_SPEECH,如果有,則
Time of Update: 2017-02-27
從Android1.6(API Level 4)開始,Android平台開始支援文字到語音(TTS)功能,也就是“合成語音”,支援以聲音方式讀 出文字。目前Android TTS可以支援多種語言:English, French, German, Italian ,Spanish 等,也有公司提供了用於 Android平台的中文TTS Engine。TTS Engine 在讀出文字前,需要知道使用哪種語言,比如“Paris”的發音,英語和法
Time of Update: 2017-02-27
App->Service->Service Start Arguments Controller本例是ApiDemos關於Service的最後一個例子,這個例子的主要目的是介紹如何向Service傳遞參數。前面的例子忽略了一個重要的問題: Service 的onStartCommand 或是 onStart(2.1版本之前)是使用調用它的Android組件(通常是Activity)同一個Thread來執行的,對應Activity來說,這個Thread通常是UI
Time of Update: 2017-02-27
Remote Service Controller 和使用Local Service的Android ApiDemo樣本解析(40):App->Service->Local Service Controller都是使用Service的“Started” 模式,RemoteService在 AndroidManifest.xml中的定義如下:<service android:name=”.app.RemoteService”
Time of Update: 2017-02-27
本例和下個例子Remote Service Controller 涉及到的檔案有RemoteService.java ,IRemoteService.aidl, IRemoteServiceCallback.aidl 及ISecondary.aidl。Android Interface Definition Language(AIDL)和其它一些支 持遠程方法調用RMI的系統的IDL類似,它定義了Service和Client 之間的使用介面約定,這種遠程調用一般需要通過處理序間通訊
Time of Update: 2017-02-27
前面LocalService 主要是提供同一Application中組件來使用,如果希望支援不同應用或進程使用Service。可以通過 Messenger。使用Messgener可以用來支援處理序間通訊而無需使用AIDL。下面步驟說明裡Messenger的使用方法:在Service中定義一個Handler來處理來自Client的請求。使用這個Handler建立一個Messenger (含有對Handler的引用).Messenger建立一個IBinder對象返回給Client(
Time of Update: 2017-02-27
Local Service Controller 是將LocalService當作“Started”Service來使用,相對於”Bound” Service 來說,這種模式 用法要簡單得多,LocalServiceActivities.Controller 啟動Local Service 之後就基本上不管LocalService了startService(new Intent(Controller.this,
Time of Update: 2017-02-27
本例和下列Local Service Controller 的Activity代碼都定義在LocalServiceActivities.Java 中,作為 LocalServiceActivities 內部類實現的。 調用的Service為LocalService。LocalService既可以做為“Started” Service,也可以做為”Bound” Service。一個“Bound” Service
Time of Update: 2017-02-27
前面介紹了Android RoboGuice2 的HelloWorld樣本,並介紹了從RoboGuice 1.1 升級到RoboGuice2.0 的主要注意事項。本例介紹如何Inject自訂 的View,Inject自訂的View和Android內建的View(如TextView,Button)方 法一樣。本例使用一個自訂的TextView,每隔1秒顯示目前時間。前定 義如下://--------------------------------- PACKAGE ----------------
Time of Update: 2017-02-27
本例實現的功能和例子Android RoboGuice 使用指南(2):第一個例子Hello World一樣,所不同的是本例使用RoboGuice2.0 來實現。下載新的RoboGuice庫,Roboguice2.0 庫有四個庫組成,如下圖所示:庫可以從 http://code.google.com/p/roboguice/下載。2. 建立一個新Android項目,比如GuiceDemo,目標平台Android1.5以上。3.
Time of Update: 2017-02-27
RoboGuice最近推出了2.0版本。和1.1相比具有:提高了穩定性支援Fragment更簡潔易用但由於RoboGuice2 不完全向下相容RoboGuice1.1,因此原來使用 RobuGuice1.1開發的項目需要對代碼做些修改才可以使用RoboGuice2.0.這裡主要說明一下使用Eclipse IDE開發環境升級到RoboGuice2.0 的一些升級注 意事項:1. 下載新的RoboGuice庫,Roboguice2.0 庫有四個庫組成,如 下圖所示:庫可以從 http://code.
Time of Update: 2017-02-27
Roboguice 提供了對Context 生命週期相關的事件的send 和receive ,系統缺 省支援的事件為:OnActivityResultEventOnConfigurationChangedEventOnContentC hangedEventOnContentViewAvailableEventOnCreateEventOnDestroyEv entOnNewIntentEventOnPauseEventOnRestartEventOnResumeEvent<
Time of Update: 2017-02-27
Roboguice 對訪問res 目錄下各種資源drawable, arrary, string 等也提供 了注入支援。可以通過@InjectResource 很方便的應用所需資源。本例修 改Android ApiDemos樣本解析(48):Content->Resources->Resources 使 用Inject Resource方法來訪問資源。public class InjectResourceDemo extends RoboActivity {
Time of Update: 2017-02-27
使用Intent 啟動一個Activity,Service等時,可以通過putExtra 傳送資料 ,被觸發的Activity,Service可以使用getIntent()的getExtras 取的Extra的 Bundle ,然後再根據Extra的索引值(Key)取的對應的參數值。RoboGuice提 供了一個簡潔的方法來取得 這些Extra 值,通過@InjectExtra 標記。本 例使用兩個Activity,InjectExtraDemo 用來觸發InjectExtraReceiver,
Time of Update: 2017-02-27
為方便起見,Roboguice針對Android平台常用的一些對象或服務提供了“標準 注入”支援。比如無需使用(SensorManager) getSystemService (SENSOR_SERVICE) 來取得SensorManger 執行個體,而直接使用@Inject 標記@Inject SensorManager sensorManager;Roboguice 自動為 sensorManager 注入所需SensorManger 對象,
Time of Update: 2017-02-27
在Android應用程式中,很多地方需要引用到Context對象(Activity, Application,Service等)。Roboguice 使得引用Context對象變得非常容易。可以參見下面例子,這裡定義一個不在Activity中的類ContextInfo,需 要引用Context對象:class ContextInfo{ final Context context; @Inject ContextInfo(Context context){
Time of Update: 2017-02-27
在例子Android RoboGuice 使用指南(2):第一個例子Hello World 介紹了使用 Roboguice開發的基本步驟:建立一個RoboApplication 的子類GuiceApplication,GuiceApplication為 Appliacation的子類,修改AndroidManifest.xml,將Application 的name 指向這 個類。將原先由Activity派生的類基類改為RoboActivity(或其它相關