顯示具有 Android 標籤的文章。 顯示所有文章
顯示具有 Android 標籤的文章。 顯示所有文章

2012年3月4日 星期日

Android - MapView上面的圖片跟著縮放 Part 2

隔了七個多月的時間,我之前寫的Android - MapView上面的圖片跟著縮放 在ptt上面又被挖出來了,這次比較不一樣的是,原本由程式帶入的點位,要改成由使用者在地圖上面長按後,將所按壓的位子放一個圖片,而這個圖片一樣要可以隨著地圖縮放!

所以我下班之後花了一點時間把之前的寫的範例修改成本次的需求,不過有一點要特別說明的是,之前的圖片縮放法太耗資源了,所以我改成了用 Matrix 的方式去縮放。

以下就是本次的範例說明

2011年9月30日 星期五

手機程式開發與兼顧硬體能力

作者: iincho (世界的盡頭) 看板: Soft_Job
標題: Re: [請益] 手機程式開發與兼顧硬體能力
時間: Thu Sep 29 01:25:57 2011


 既然有人希望在下介紹怎麼看Android code,這裡就稍微分享一下心得,
 不敢說每個模組都精通,但是大方向抓是抓得出來的,
 不過我不喜歡吊書袋,所以想看到什麼design pattern之流的不要太期待。

 首先講書,Android目前關於系統面寫得最好的是底下這本:

 Android技術內幕:系統卷, 作者楊豐盛,簡體書。

 網路上找得到部分試閱,不過後面的章節沒前面寫得好,但光看第三章就划算,
 對binder的講解應該是目前市面上最好的。

 應該很多人看過韓超那本"深入淺出 Android 系統原理及開發要點",
 不過就我來看這兩本根本不是同一個檔次的東西。

 台灣出的基本上只能買高煥堂寫的,其他的不要碰。高先生對系統的理解算非常強,
 就是欠了點文彩有些可惜,不過寫的東西比那些搞技術傳教的好多了,至少觀念都是
 正確的。

2011年7月28日 星期四

Android - MapView上面的圖片跟著縮放

昨天在ptt的AndroidDev板看到有鄉民在問怎麼讓MapView上面的圖片跟著縮放,想起之前也有做過類似的測試,就寫了這篇和大家分享。

首先先看到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 美金,去除廣告
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,所以可以用的事件如下:

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 - 記憶卡相關

取得記憶卡狀態
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作為我的第一步。

這套引擎有什麼特點呢?
  1. 完全公開原始碼:作者將所有的程式碼都公開,想要了解程式的實作方式,可以自己trace程式碼。
  2. 完全免費:是的!這是一套免費的package,你不需要額外花錢買授權或是支援。
  3. 豐富的範例程式:作者針對每個可能用到的功能寫了範例,極具參考價值。
  4. 強大的功能:使用少量的程式碼,就可以做到許多複雜的動作。
  5. 無須公開自己的程式碼:雖然這套引擎的授權是採用LGPL(稍稍鬆綁的堅持 - LGPL),但是你不需要公開你的遊戲原始碼。唯一要注意的地方是,當你修改了引擎的原始碼,就必須要公開你所修改的程式碼
但是也有一些缺點:
  1. 沒有文件可以看:嗯....對於習慣有各種white book啦,developer cookbook閱讀的人來說,這套引擎完全沒有相關文件可以看,就連安裝教學都是在他的論壇中才找到的。想要了解有什麼功能,就要自己爬原始碼(編按:所以才會完全公開程式碼.....)。
  2. 2D only:這是2D的引擎,不要以為是哪裡搞錯了,怎麼都是平面的...。
  3. 需要有java或是物件導向的基礎:沒有的話,光是看他繼承來實作去的,就會搞死你的腦細胞了。
  4. 中文討論與教學較少:中文以簡體中文的討論占大多數,但是還是不足以撐起一片天,所以要有硬啃英文跟用英文在作者的論壇苦戰的心理準備。
AndEngine 首頁:http://www.andengine.org/
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,不然會跑很久....

2011年1月17日 星期一

Android的第二步 - 建立模擬器

想要開發Android的應用程式,但是又沒有Android的手機或設備要怎麼辦?別擔心!Google幫你想到了這一點,提供了一套模擬器工具,讓你在PC或Mac上測試你的程式,但是要注意以下幾點:
  1.  模擬器只是"模擬"用,最好還是要有實際裝置做最後release的測試。
  2.  電腦的配備不能太差,不然模擬器執行的速度會很慢。

以下的建立方式是以PC Windows為建立環境,Linux及Mac的方式大致上一樣,只是部分路徑可能會有差別。

2011年1月13日 星期四

Android的第一步 - 安裝開發環境及SDK

需要安裝的軟體清單:
  1. Eclipse
  2. Google Android SDK


首先,從第一點開始,可以到Eclipse官網下載頁,視個人需要下載所需的版本,因為我只用來開發Android,所以下載了Eclipse IDE for Java Developers,版本是Helios (3.6.1)。