隔了七個多月的時間,我之前寫的Android - MapView上面的圖片跟著縮放 在ptt上面又被挖出來了,這次比較不一樣的是,原本由程式帶入的點位,要改成由使用者在地圖上面長按後,將所按壓的位子放一個圖片,而這個圖片一樣要可以隨著地圖縮放!
所以我下班之後花了一點時間把之前的寫的範例修改成本次的需求,不過有一點要特別說明的是,之前的圖片縮放法太耗資源了,所以我改成了用 Matrix 的方式去縮放。
以下就是本次的範例說明
2012年3月4日 星期日
2011年9月30日 星期五
手機程式開發與兼顧硬體能力
作者: iincho (世界的盡頭) 看板: Soft_Job
標題: Re: [請益] 手機程式開發與兼顧硬體能力
時間: Thu Sep 29 01:25:57 2011
標題: Re: [請益] 手機程式開發與兼顧硬體能力
時間: Thu Sep 29 01:25:57 2011
既然有人希望在下介紹怎麼看Android code,這裡就稍微分享一下心得,
不敢說每個模組都精通,但是大方向抓是抓得出來的,
首先講書,Android目前關於系統面寫得最好的是底下這本:
Android技術內幕:系統卷, 作者楊豐盛,簡體書。
網路上找得到部分試閱,不過後面的章節沒前面寫得好, 但光看第三章就划算,
對binder的講解應該是目前市面上最好的。
應該很多人看過韓超那本"深入淺出 Android 系統原理及開發要點",
不過就我來看這兩本根本不是同一個檔次的東西。
台灣出的基本上只能買高煥堂寫的,其他的不要碰。 高先生對系統的理解算非常強,
就是欠了點文彩有些可惜, 不過寫的東西比那些搞技術傳教的好多了,至少觀念都是
正確的。
2011年7月28日 星期四
Android - MapView上面的圖片跟著縮放
昨天在ptt的AndroidDev板看到有鄉民在問怎麼讓MapView上面的圖片跟著縮放,想起之前也有做過類似的測試,就寫了這篇和大家分享。
首先先看到layout檔的排版:
很簡單的一個地圖畫面。
首先先看到layout檔的排版:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.google.android.maps.MapView android:id="@+id/mView_Main" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="你自己的key"> </com.google.android.maps.MapView> </LinearLayout>
很簡單的一個地圖畫面。
2011年7月18日 星期一
Android上的好用鬧鐘 - Alarm Clock Xtreme
Android上面有很多套鬧鐘軟體,今天介紹的這一套是我覺得還不錯用的鬧鐘軟體,除了會盡責的叫你起床之外,還有專為懶人設計的貪睡功能,每天最美好的時光之一就是鬧鐘響起到下一次貪睡期間的小小賴床,好像不賴一下床,今天就沒有辦法開始一樣XD
另外一個推薦原因就是...正(繁)體中文是我翻的啦!老王賣瓜,自賣自誇一下!
Market 連結:Alarm Clock Xtreme
免費版本:有廣告
付費版本:0.99 美金,去除廣告
另外一個推薦原因就是...正(繁)體中文是我翻的啦!老王賣瓜,自賣自誇一下!
Market 連結:Alarm Clock Xtreme
免費版本:有廣告
付費版本:0.99 美金,去除廣告
![]() |
| QR Code |
2011年7月16日 星期六
Android 模擬器打不開
今天為了測試一支半成品,不敢貿然安裝在實機上,打算安裝在那慢的可以的模擬器來做測試,沒想到一按啟動就跳出了怪訊息:
幹什麼!造反了!
invalid command-line parameter: Files\android-sdk-windows\tools/emulator-arm.exe.
Hint: use '@foo' to launch a virtual device named 'foo'.
please use -help for more information
幹什麼!造反了!
2011年3月10日 星期四
Android - AndEngine的基礎事件
ANndEngine中的事件並不複雜,再繼承了BaseGameActivity之後,因為BaseGameActivity有實作了IGameInterface,所以可以用的事件如下:
這些事件的用意也可以很容易的從method的命名看出來。
但是切記,只能Override這些事件,Android的基礎事件,例如:onCreate(),onStop()...等等,完全禁止使用,否則輕則logcat會出現提示說明不能使用,然後當掉,重則只有exception的訊息,然後直接當掉。
public Engine onLoadEngine(); public void onLoadResources(); public void onUnloadResources(); public Scene onLoadScene(); public void onLoadComplete(); public void onGamePaused(); public void onGameResumed();
這些事件的用意也可以很容易的從method的命名看出來。
但是切記,只能Override這些事件,Android的基礎事件,例如:onCreate(),onStop()...等等,完全禁止使用,否則輕則logcat會出現提示說明不能使用,然後當掉,重則只有exception的訊息,然後直接當掉。
2011年3月9日 星期三
Android - logcat不會顯示
有時候常常會遇到模擬器重開,但是Eclipse沒有重開的情況下,logcat的訊息不會顯示,要重開Eclipse又有點麻煩。後來我發現了一個解決方式,見下圖,對著圖中紅色框框的地方按滑鼠右鍵,訊息一下子就噴出來啦~
2011年3月8日 星期二
Android - 記憶卡相關
取得記憶卡狀態
MEDIA_BAD_REMOVAL:不當移除。未經卸載就拔除記憶卡。
MEDIA_CHECKING:檢查中。
MEDIA_MOUNTED:已掛載,並且可讀寫。
MEDIA_MOUNTED_READ_ONLY:已掛載,但是只能讀取。
MEDIA_NOFS:未格式化或是格式無法讀取。
MEDIA_REMOVED:已移除。記憶卡槽偵測不到有記憶卡。
MEDIA_SHARED:記憶卡未掛載,使用的是usb分享的外部儲存裝置。
MEDIA_UNMOUNTABLE:有偵測到記憶卡,但是無法掛載。可能是記憶卡壞掉或是記憶卡分割區壞掉了。
MEDIA_UNMOUNTED:有偵測到記憶卡,但是尚未掛載。
取得記憶卡根路徑
取得記憶卡容量
ps.1 gigabytes = 1024 megabytes = 1024*1024 kilobytes = 1024 * 1024 * 1024 bytes
Environment.getExternalStorageState()狀態有以下幾種:
MEDIA_BAD_REMOVAL:不當移除。未經卸載就拔除記憶卡。
MEDIA_CHECKING:檢查中。
MEDIA_MOUNTED:已掛載,並且可讀寫。
MEDIA_MOUNTED_READ_ONLY:已掛載,但是只能讀取。
MEDIA_NOFS:未格式化或是格式無法讀取。
MEDIA_REMOVED:已移除。記憶卡槽偵測不到有記憶卡。
MEDIA_SHARED:記憶卡未掛載,使用的是usb分享的外部儲存裝置。
MEDIA_UNMOUNTABLE:有偵測到記憶卡,但是無法掛載。可能是記憶卡壞掉或是記憶卡分割區壞掉了。
MEDIA_UNMOUNTED:有偵測到記憶卡,但是尚未掛載。
取得記憶卡根路徑
Environment.getExternalStorageDirectory().getPath()
取得記憶卡容量
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); // 未使用(單位:bytes) long sdFreeSize = stat.getAvailableBlocks() * stat.getBlockSize(); // 總容量(包含保留空間,單位:bytes) long sdTotalSize = stat.getFreeBlocks() * stat.getBlockSize(); // 已使用(單位:bytes) long sdUsedSize = sdTotalSize - sdFreeSize ;
ps.1 gigabytes = 1024 megabytes = 1024*1024 kilobytes = 1024 * 1024 * 1024 bytes
2011年2月23日 星期三
AndEngine - Android的遊戲引擎
Android發展也有一段時間了,隨著性能越來越好的硬體被推出之後,遊戲也越來越多,但是對於一個遊戲開發的初學者來說,到底哪一套遊戲引擎比較適合呢?比較過幾套Android上的引擎之後,決定以AndEngine作為我的第一步。
這套引擎有什麼特點呢?
AndEngine 論壇:http://www.andengine.org/forums/
AndEngine 原始碼:http://code.google.com/p/andengine/
AndEngine 範例:http://code.google.com/p/andengineexamples/
這邊有一些教學的文章可以參考:
Beginner
Getting Started with AndEngine, Eclipse and a Hello World Application
Using Timer's - Sprite Spawn Example
Update Handlers - Using their power!
Medium
Updating Sprites/Objects - Using Listeners
Scrolling with Touch Events
Live Wallpaper Settings - Example by Nasc (until I have done a tutorial)
Advanced
XML Parsing within AndEngine
Other
Live Wallpaper Template
Particle Effect Sprites
2D Polygon Class for AndEngine - Perfect for Debugging without Textures!
這套引擎有什麼特點呢?
- 完全公開原始碼:作者將所有的程式碼都公開,想要了解程式的實作方式,可以自己trace程式碼。
- 完全免費:是的!這是一套免費的package,你不需要額外花錢買授權或是支援。
- 豐富的範例程式:作者針對每個可能用到的功能寫了範例,極具參考價值。
- 強大的功能:使用少量的程式碼,就可以做到許多複雜的動作。
- 無須公開自己的程式碼:雖然這套引擎的授權是採用LGPL(稍稍鬆綁的堅持 - LGPL),但是你不需要公開你的遊戲原始碼。唯一要注意的地方是,當你修改了引擎的原始碼,就必須要公開你所修改的程式碼。
- 沒有文件可以看:嗯....對於習慣有各種white book啦,developer cookbook閱讀的人來說,這套引擎完全沒有相關文件可以看,就連安裝教學都是在他的論壇中才找到的。想要了解有什麼功能,就要自己爬原始碼(編按:所以才會完全公開程式碼.....)。
- 2D only:這是2D的引擎,不要以為是哪裡搞錯了,怎麼都是平面的...。
- 需要有java或是物件導向的基礎:沒有的話,光是看他繼承來實作去的,就會搞死你的腦細胞了。
- 中文討論與教學較少:中文以簡體中文的討論占大多數,但是還是不足以撐起一片天,所以要有硬啃英文跟用英文在作者的論壇苦戰的心理準備。
AndEngine 論壇:http://www.andengine.org/forums/
AndEngine 原始碼:http://code.google.com/p/andengine/
AndEngine 範例:http://code.google.com/p/andengineexamples/
這邊有一些教學的文章可以參考:
Beginner
Getting Started with AndEngine, Eclipse and a Hello World Application
Using Timer's - Sprite Spawn Example
Update Handlers - Using their power!
Medium
Updating Sprites/Objects - Using Listeners
Scrolling with Touch Events
Live Wallpaper Settings - Example by Nasc (until I have done a tutorial)
Advanced
XML Parsing within AndEngine
Other
Live Wallpaper Template
Particle Effect Sprites
2D Polygon Class for AndEngine - Perfect for Debugging without Textures!
2011年1月21日 星期五
Android的介面設計
最近看到一個不錯的網站 - Android Patterns,介紹Android的介面互動設計方式,由於網站才成立沒多久,案例不夠豐富,設計小組也允諾會持續更新:
We are a group of interaction designers based in Amsterdam. We are UNITiD and we will keep this site as fresh and crispy as possible.
2011年1月18日 星期二
Android的第三步 - Hellow World
終於要踏入Android的開發領域了,這一次要講的是每個程式設計師必經的第一課 - Hellow World!
從本篇開始,往後所有的開發環境以及編輯器使用的是Windows 7 & Eclipse 3.6。
打開Eclipse編輯器,並且開啟模擬器stand by,不然會跑很久....
從本篇開始,往後所有的開發環境以及編輯器使用的是Windows 7 & Eclipse 3.6。
打開Eclipse編輯器,並且開啟模擬器stand by,不然會跑很久....
2011年1月17日 星期一
Android的第二步 - 建立模擬器
想要開發Android的應用程式,但是又沒有Android的手機或設備要怎麼辦?別擔心!Google幫你想到了這一點,提供了一套模擬器工具,讓你在PC或Mac上測試你的程式,但是要注意以下幾點:
以下的建立方式是以PC Windows為建立環境,Linux及Mac的方式大致上一樣,只是部分路徑可能會有差別。
- 模擬器只是"模擬"用,最好還是要有實際裝置做最後release的測試。
- 電腦的配備不能太差,不然模擬器執行的速度會很慢。
以下的建立方式是以PC Windows為建立環境,Linux及Mac的方式大致上一樣,只是部分路徑可能會有差別。
2011年1月13日 星期四
Android的第一步 - 安裝開發環境及SDK
訂閱:
文章 (Atom)


