Time of Update: 2018-12-03
再補充一點吧,如果需要給遊戲加上背景音樂,其實也是非常容易的事情。因為Android提供了一個
Time of Update: 2018-12-03
如何在Android中顯示GIF動畫,有很多方法,比如可以使用J2ME平台上那個解碼工具類,純java的,拿來即可。但是其實Android還是為我們提供了一個更為方便的工具:android.graphics.Movie。參考例子在ApiDemos中的BitmapDecode中。下面我只是簡單地用它來實現一個自己的GIFView,以方便在各種需要使用GIF動畫的場合使用。為了簡單,我讓GIFView extends
Time of Update: 2018-12-03
一直想研究一下NDK的東西,卻總是因為項目中用不上而作罷,今天閑下來,HELLO WORLD了一把。 依例,做任何一件事情之前都先GOOGLE,果然,有不少關於NDK的文章,所以,做這個HELLOWORLD還是很簡單的,只是大家要注意因為NDK R4有一些改動,切不可拿以前的文章來依葫蘆畫瓢。 安裝步驟:1. 下載,這個就不多說了,翻牆,下載 android-ndk-r4b-linux-x86.zip 或者 android-ndk-r4b-windows.zip。註:我是在Ubuntu 10.
Time of Update: 2018-12-03
Google的Android SDK發布也有一段時間了,一直想研究一下卻苦於找不到時間。利用這個周未,開始強迫自己再次進入學習狀態,原因很簡單:我看好開放的gPhone。SDK的下載與安裝並不複雜,網上也有不少同學已經進入狀態了,我就不再重複了吧。 今天主要討論的,還是永遠不變的話題:Hello World.1.最簡單的HelloWorld安裝了SDK後,直接產生一個Android
Time of Update: 2018-12-03
繼續,今天討論的是記錄檔案的讀寫。因為原來在Brew平台上實現的數獨將題庫是一個二進位檔案,所以在Android就直接拿那個檔案來用了。 計劃實現兩個函數,先是LoadTiList(),載入題庫,先裝題庫檔案放在資源裡,然後從資源裡載入它作為一個DataInputStream即可。代碼也沒幾行,如下: public static boolean LoadTiList(MainActivity me) ...{ DataInputStream in = null;
Time of Update: 2018-12-03
大略地看了一下android.app下的Service類,覺得它與Activity非常相似,只是要注意幾個地方:1.生命週期,Service的從onCreate()->onStart(int,Bundle)->onDestroy()顯得更為簡單。但是它的onStart是帶參數的,第一個ID可用來標識這個service,第二個參數顯示是用來傳遞資料的了。比較Activity,傳遞資料的Bundle是在onCreate就帶進入的。2.Service的啟動由Context.startSer
Time of Update: 2018-12-03
此Camera非彼Camera,在android.graphics包裡的Camera,可以理解為2D圖形系統中的視角,或者照相機的機位,根據透視的原理我們可以實現一些簡單的3D效果。在ApiDemo中可參考那個Rotate3dAnimation例子。其實Camera就兩個方法:translate和rotate,下面逐一探討一番吧。代碼很簡單,做一個小小的自訂View來做實驗罷了。我引入的這張圖片尺寸是480*600(因為手機是480*854)。protected void
Time of Update: 2018-12-03
Android是第二個最流行的用於 智能手機和平板電腦 的作業系統。這裡有8個最好的 Android工具以許多不同的方式 協助開發人員 ,例如 - SDK和AVD管理器,android ADT,android
Time of Update: 2018-12-03
1.準備編譯環境sudo apt-get install build-essential ncurses-dev 2.Get kernel sourcegit clone git://android.git.kernel.org/kernel/common.gitgit checkout origin/android-goldfish-2.6.29 -b goldfish 3.Get prebuilt sourcegit clone
Time of Update: 2018-12-03
步驟如下:1.在Android的源碼中(目標路徑為:system/core/logcat/logcat.cpp),將其此logcat.cpp檔案中的static void readLogLines(int logfd)函數作出如下修改:static void readLogLines(int logfd){char buffer[256] = {0};while (1) {unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1]
Time of Update: 2018-12-03
我們在做Android應用開發的時候經常會用到預置資料庫或者使用一個現有的第三方的動態或靜態庫的方式進行開發,這時候就需要一些修改Makefile檔案將預置的資料或庫檔案拷貝到指定目錄中。一個比較簡單的方式如下:##copy operation####include $(CLEAR_VARS) #the data or lib you want to copyLOCAL_MODULE := libxxx.so LOCAL_MODULE_CLASS :=
Time of Update: 2018-12-03
上周五在幫一個實習生偵錯工具的時候發現了這個問題,他當時想實現一個這樣的功能:當使用者選擇刪除時,以dialog的方式彈出資料列表,並且每個資料都有一個checkbox,使用者選擇後可以進行刪除過濾。具體的介面是: public AlertDialog.Builder setMultiChoiceItems (Cursor cursor, String isCheckedColumn, String labelColumn,
Time of Update: 2018-12-03
好久沒不做Android的介面就是手生,為了搞的效果整了好半天,不過還好最終搞定了。 1.聲明明你的layout,並將如下的背景xml設定上去: <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"
Time of Update: 2018-12-03
最近在研究一些具體的設計模式,結合之前看到很多Android中java代碼,發現在Android源碼中使用設計模式的地方還真不少啊,好的系統果然要注重好的設計,注重可擴充、可維護。本次就從PhoneService中使用到的一些簡單的設計模式類型開始介紹: 1.簡單原廠模式:註:個人覺得這個原廠模式和標準的原廠模式有點稍微差別,標準的是有用戶端來決定建立哪個執行個體,例如,要使用GSMPhone的話,一般使用Phone phone =
Time of Update: 2018-12-03
我們在使用HTC的GXX時,會發現他有一個功能是接通後震動提示,雖然說不是什麼大的功能,但是使用比較方便,比如在呼叫過程中的時候就可以放在桌子上等震動了就說明電話被接通了再拿起來說話,就避免了一直放到耳邊等待對方。具體的實現如下,當然實現方式可能和它不一樣,但是效果一樣,呵呵。由於我們是基於源碼開發的,所以只討論在PhoneApp裡面添加該功能,獨立模組或者基於SDK開發的不討論。注意修改PhoneApp模組中的CallNotify.java檔案。1. 聲明Vibrartor相關變數://
Time of Update: 2018-12-03
由於目前手頭沒有真機,只是在模擬器上修改部分telephony代碼來調出請求輸入數字 PIN 碼的介面。具體方法:修改external/qemu/telephony/sim_card.c中的asimcard_create()函數,將card->status= A_SIM_STATUS_READY改為card->status= A_SIM_STATUS_PIN,然後重新編譯代碼產生image,啟動模擬器就直接進入數字 PIN 碼解鎖介面。 數字 PIN
Time of Update: 2018-12-03
單例模式使用比較常見,用來保證一個類僅有一個執行個體,並提供一個訪問它的全域訪問點。在Android application包中有個Bluetooth相關的包就用到了單例模式,執行個體代碼如下: public class BluetoothOppManager { private static BluetoothOppManager INSTANCE;/** Used when obtaining a reference to the singleton instance. */
Time of Update: 2018-12-03
[First written by Steve Guo, please keep the mark if forwarding.] In this topic you will learn some information about Android process management. First let’s take a look at the launched processes during Android booting. USER PID PPID VSIZE RSS WCHAN
Time of Update: 2018-12-03
做android應用程式,為了達到更好的使用者互動效果,經常需要改變Button的背景顏色以及TextView的字型顏色來提示使用者當前的菜單可操作的狀態,對此android提供了一種定義一種selector的方法讓程式員提前配置好背景和色值,具體的方法如下:一.Button(ImageButton、ImageView包括一般的view、ViewGroup都可以同樣操作):1.首先在你的layout檔案中為Button添加background屬性,比如android:background="@d
Time of Update: 2018-12-03
在Android的觸摸訊息中,已經實現了三種監測,它們分別是1)pre-pressed:對應的語義是使用者輕觸(tap)了螢幕2)pressed:對應的語義是使用者點擊(press)了螢幕3)long pressed:對應的語義是使用者長按(long press)了螢幕是觸摸訊息隨時間變化的時間軸:其中,t0和t1定義在ViewConfiguration類中,標識了tap和longpress的逾時時間,定義如下: /** * Defines the duration in