最近在研究Laucher應用,今天寫了一下四組件中的壁紙(WallPaper),關於靜態壁紙的實現,比較簡單,在此就不再描述. 參考了系統原始碼之後,我自己做了一個簡單的動態壁紙:氣泡流動效果. 圖案比較簡單,但基本原理可在此例子上加以擴充,比如3D動畫效果,複雜的觸摸改變動畫事件,有興趣的朋友可以試一試.大概效果如下,最開始得時候,會從四個角落的方向浮出四個氣泡,然後以一定的路線移動,當移出螢幕時重新開始以新的座標浮出,以此實現了一個簡單的氣泡浮動的效果:實現的思路
1、為什麼要用緩衝緩衝是存取資料的臨時地,因為取未經處理資料代價太大了,加了緩衝,可以取得快些。緩衝可以認為是未經處理資料的子集,它是從未經處理資料裡複製出來的,並且為了能被取回,被加上了標誌。在android開發中,經常要訪問網路資料比如大量網狀圖片,如果每次需要同一張圖片都去網路擷取,這代價顯然太大了。可以考慮設定本地檔案快取和記憶體緩衝,儲存從網路取得的資料;本地檔案快取空間並非是無限大的,容量越大讀取效率越低,可設定一個折中緩衝容量比如10M,如果緩衝已滿,我們需要採用合適的替換策略換掉
一、線程間通訊的Message機制1、Message介紹frameworks\base\core\java\android\Os\Message.javaMessage是線程之間傳遞資訊的載體,包含了對訊息的描述和任意的資料對象。Message中包含了兩個額外的 int欄位和一個object欄位,這樣在大部分情況下,使用者就不需要再做記憶體配置工作了。雖然Message的建構函式是public的,但是最好是使用Message.obtain( )或Handler.obtainMessage( )
很多時候我們的軟體需要對處理後的資料進行儲存或再次訪問。Android為資料存放區提供了如下幾種方式:檔案SharedPreferences(參數)SQLite資料庫內容提供者(Content provider)網路一. 檔案1.1使用檔案進行資料存放區Activity提供了openFileOutput()方法可以用於把資料輸出到檔案中,具體的實現過程與在J2SE環境中儲存資料到檔案中是一樣的。public class FileActivity extends Activity {
ContentProvider簡介及其好處簡介:ContentProvider 在android中的作用是對外共用資料,也就是說你可以通過ContentProvider把應用中的資料共用給其他應用訪問,其他應用可以通過ContentProvider 對你應用中的資料進行添刪改查。關於資料共用,以前我們學習過檔案操作模式,知道通過指定檔案的操作模式為Context.MODE_WORLD_READABLE
BroadcastReceiver初識:廣播接收者(BroadcastReceiver)用於接收廣播Intent,廣播Intent的發送是通過調用Context.sendBroadcast()、Context.sendOrderedBroadcast()來實現的。通常一個廣播Intent可以被訂閱了此Intent的多個廣播接收者所接收,這個特性跟JMS中的Topic訊息接收者類似。要實現一個廣播接收者方法如下:第一步:繼承BroadcastReceiver,並重寫onReceive()方法。pu
要實現電話監聽,需要監聽電話的狀態,方法如下. ListenReceiver類: 收到電話廣播時開啟監聽電話的服務public class ListenReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { context.startService(new
在android的項目開發中,都會遇到後期功能拓展增強與主程式碼變更的現實矛盾,也就是程式的靈活度。 由於linux平台的安全機制,再加上dalvik的特殊機制,各種許可權壁壘,使得開發一個靈活多變的程式,變得比較困難,不像pc平台下那麼容易。 這裡實際上可以借鑒傳統軟體中擴充程式的方法: 也就是外掛程式的實現. 如目前所有的瀏覽器,比如我們使用的eclipse,以及很多優秀的軟體,都使用了此種方式. 這樣輕鬆實現了軟體的功能擴充,而升級功能時只用更新對應外掛程式,
通過應用程式內建資源實現換膚,典型的應用為QQ空間中換膚的實現. 應用情境為: 應用一般不大,且頁面較少,風格相對簡單,一般只用實現部分資源或者只用實現背景的更換. 此種換膚方式實現的思路: 1. 把幾套皮膚放在res/drawable目錄裡,然後用SharedPreferences來記錄當前皮膚的資源id.然後在程式啟動時載入Activity背景。 2. 主要的實現在皮膚管理器SkinManager類中. 將皮膚資源的ID加入集合中.
Traceview是android平台配備一個很好的效能分析的工具。它可以通過圖形化的方式讓我們瞭解我們要跟蹤的程式的效能,並且能具體到method。在SDK路徑\tools目錄下.1.在開始使用TraceView你要注意: 你的裝置和模擬器必須設定SD card 和 你的程式擁有對SD card 具有讀寫操作的許可權(<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
實現切換Tabs標籤; Activity代碼: public class ActionBarTabs extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.action_bar_tabs);}public void onAddTab(View v) {final
利用手機擷取所在地點的經緯度:Location 在Android 開發中還是經常用到的,比如 通過經緯度擷取天氣,根據Location 擷取所在地區詳細Address (比如Google Map 開發).等。而在Android 中通過LocationManager 來擷取Location .通常擷取Location 有GPS 擷取,WIFI 擷取. 如下介紹GPS擷取Location:第一步:建立一個Android 工程命名為GPS第二步:
由於公司營運需要以及應用中需要加上應用推廣的統計,往往要對應二三十個渠道,按照正常方法一個一個的去產生不同渠道包的應用,不僅浪費了時間,而且大大降低了效率.上一篇講到使用Ant進行Zip/Tar包的解壓縮,實際上Ant工具不僅僅具有此類功能,它更強大的地方在於自動化調用程式完成項目的編譯,打包,測試等. 類似於C語言中的make指令碼完成這些工作的批處理任務. 不同於MakeFile的是,Ant是純Java編寫的,因此具有很好的跨平台性.在此我主要講下如何自動構建工具Ant,
在這裡談一下墨跡天氣的換膚實現方式,不過首先聲明我只是通過反編譯以及參考了一些網上其他資料的方式推測出的換膚原理, 在這裡只供參考. 若大家有更好的方式,
Android從3.0(API Level 11)開始,在繪製View的時候支援硬體加速,充分利用GPU的特性,使得繪製更加平滑,但是會多消耗一些記憶體。 開啟或關閉硬體加速: 由於硬體加速自身並非完美無缺,所以Android提供選項來開啟或者關閉硬體加速,預設是關閉。可以在4個層級上開啟或者關閉硬體加速: Application層級:<applicationandroid:hardwareAccelerated="true" ...> Act
上一篇中提到對於Zip包的解壓和壓縮需要藉助Ant 實現,我經過參考了其他的資料,整理後並加上了一些自己的看法:這裡就具體地講下如何使用Ant進行解壓縮及其原因: java中實際是提供了對 zip等壓縮格式的支援,但是為什麼這裡會用到ant呢?原因主要有兩個:1. java提供的類對於包括有中文字元的路徑,檔案名稱支援不夠好,你用其它第三方軟體解壓的時候就會存在亂碼。而ant.jar就支援檔案名稱或者路徑包括中文字元。2.
Android建立捷徑方法的封裝代碼:package com.shortcut.util;import com.shortcut.main.R;import android.app.AlertDialog;import android.content.ComponentName;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import
android.intent.action.TIME_TICK在資訊清單檔裡註冊不起作用android.intent.action.TIME_TICK和android.intent.action.SCREEN_OFF
一. 什麼是藍芽(Bluetooth)?1.1 BuleTooth是目前使用最廣泛的無線通訊協議1.2 主要針對短距離裝置通訊(10m)1.3 常用於串連耳機,滑鼠和移動通訊裝置等.二. 與藍芽相關的API2.1 BluetoothAdapter:代表了本地的藍芽適配器2.2 BluetoothDevice代表了一個遠端Bluetooth裝置三. 掃描已經配對的藍牙裝置(1)註:必須部署在真實手機上,模擬器無法實現首先需要在AndroidManifest.xml 聲明藍芽許可權<us
在福士點評團購中,有這樣一個效果. 在具體的團購頁面中商家圖片下有一個購買條,當使用者滾動團購詳情介面的時候,購買條會停留在介面的最上方. 具體效果: 圖1 圖2