格式化

廣告

廣告2

2014年1月18日 星期六

2013年11月11日 星期一

[Android程式範例] GoogleMaps自定義InfoWindow

[Android程式範例] GoogleMaps自定義InfoWindow

Google Maps v2 自訂地標訊息視窗(InfoWindow)

然後google map的部分要用setInfoWindowAdapter方法替換調原本adapter就可以了!

map.setInfoWindowAdapter(new CMuseumAdapter());

要自己實作一個InfoWindowAdapter介面

2013年11月5日 星期二

[Android程式範例] 從SD卡選擇圖片檔案路徑

在android中選擇圖片

有時候你必須要選擇一張圖片路徑,並且回傳你就可以使用以下的方式

先呼叫這種intent
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 100);   

再來就在原本的activity覆寫onActivityResult方法來做相關處理

2013年10月26日 星期六

[Android SDK特色教學] 遊戲、應用程式中播放背景音樂、背景音效

andorid遊戲、應用程式中播放背景音樂、背景音效

一個遊戲的背景音樂僅僅需要在遊戲運行的時候播放,而在返回到桌面或者進入其他應用使遊戲的activity變為不可見時,都應該立即停止播放,所以遊戲的背景音效或音樂播放根本沒必要使用service。
有人可能說播放背景音樂應該在後台執行,不能影響程序的正常運行,這樣說當然正確,但這僅需要開一個單獨的執行緒來專門播放音樂就可以了,而經我測試,MediaPlayer和SoundPool本身都已經實現了在獨立的執行緒中播放音樂,所以綜上所述在遊戲中播放背景音樂完全沒必要使用 service,那樣完全是捨近求遠,畫蛇添足之舉。只需直接使用MediaPlayer即可。
以下是一個實現遊戲中播放聲音的類別,封裝了MediaPlayer和SoundPool的使用細節,所有方法都定義為靜態方法,在程序啟動時先調用其init方法,然後在任何地方都可以非常方便的使用

[Android SDK特色教學] SoundPool播放音效

參考文章:[Android] SoundPool 音效 (一)-http://style77125tech.pixnet.net/blog/post/152442867
  1. 使用SoundPool有限制,播放的音檔不可以超過 「1mb」大小,所以要放音樂就不能使用這一個方法,要使用MediaPlay
  2. SoundPool很容易莫名其妙的自動終止,在使用pause和stop方法時很常很莫名其妙。
  3. SoundPool優點為CPU資源使用率低,反應延遲較少。
  4. 用來播放一些短短的音效、急促的效果音很好用。
  5. 建議使用ogg檔案為音效檔,請先建立資料夾raw放置音效檔案進去。

只要重點3行程式碼就可以播放音效:

[Android SDK特色教學] strings.xml顯示特殊字元

若你在strings.xml定義如下的字串變數
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">'""'''@#$%^&</string>

</resources>

那一定會有很多錯誤跳出來
原因就是不可以直接在strings.xml輸入這些符號來當作字串,而是必須要直接輸入acsii的編碼

以下為常見的ASCII十進制交換編碼:

2013年10月24日 星期四

2013年9月26日 星期四

[Android app開發基本概念] listview 無法點擊/無法響應事件/無法獲得焦點

[Android app開發基本概念] listview 無法點擊/無法響應事件/無法獲得焦點

在Android應用設計與實現中我們通常都會使用到ListView這個控件,系統有一些預設的Adapter可以使用,例如SimpleAdapter和ArrayAdapter,但是總是會有一些情況我們需要通過自定義ListView來實現一些效果,那麼在這個時候,我們通常會碰到自定義ListView無法選中整個ListViewItem的情況,也就是無法響應ListView的onItemClickListener中的onItemClick()方法,究竟是為什麼呢?

2013年9月23日 星期一

[Android程式範例] http網頁下載檔案或文字

[Android程式範例] http網頁下載檔案或文字

[Android程式範例] http網頁下載檔案或文字

主要在使用時只要一句話! 
呼叫的方法是:

2013年9月20日 星期五

[Android程式範例] GIF動畫播放

android gif動畫

GIF動畫播放


在Android中是不支援直接使用GIF動畫圖片關聯播放影格動畫,所以經過前人的試驗,發現說可以利用Movie類別來達到這種功能,隨然本來是用來播放影片的,但其實稍微修飾一下,播放gif動畫也是沒有問題的!

2013年9月19日 星期四

[Android app開發基本概念] 利用PHP連接Mysql資料庫

android mysql json查詢

[Android app開發基本概念] 利用PHP連接Mysql資料庫

示範從android開HttpClient請求post一個id參數到php網頁,然後php網頁收到對id作條件搜尋,將結果編碼成JSON回傳,android收到返回資料後利用JSONArray將其解碼,將資料呈現在listview


其實好像也能用JDBC連,不過貌似比較不耐操!?

本篇所使用的環境套件為 Mysql、Apache、PHP,在此除了利用PHP向資料庫要資料外並將取回的資料轉成JSON格式,接著利用HTTP協定傳遞給Android程式,之後將詳細介紹中間的執行步驟及該注意的事項。

[JAVA教學範例] ArrayList轉StringArray字串陣列

ArrayList轉StringArray字串陣列

2013年9月16日 星期一

[Android SDK特色教學] 影格動畫,Frame動畫

Android平台提供了兩種動畫
  1. 一類是Tween動畫,就是對場景裡的物件不斷的進行圖像變化來產生動畫效果(旋轉、平移、放縮和漸變)。
  2. 第二類就是Frame動畫,即順序的播放事先做好的圖像,與gif圖片原理類似。
下面就重點講解一下

Frame Animation (影格動畫、禎動畫)

其實使用起來比較簡單,首先需要創建一個AnimationDrawable對象,通過addFrame方法把每一幀要顯示的內容添加進去,最後通過Start方法來播放動畫。 同時還有設置循環setOneShot等方法可供使用。

要先增加我們的xml動畫定義檔:

2013年9月15日 星期日

[Android UI 設計] TextView元件文字Text加入底線呢?

要如何在Andorid下的TextView元件加入底線呢?


很簡單
只要在string.xml資源檔加入標籤來標記就可以了!
<string name="name"><u>some text</u></string>

如果是要在.java程式碼設定的話:
result.setText(Html.fromHtml("<u>"+getResources().getString(R.string.name)+"</u>"));

2013年8月8日 星期四

[Android程式範例] 判斷某個套件package是否已安裝

  final PackageManager packageManager = getPackageManager();
  List mPackageInfo = packageManager.getInstalledPackages(0);
  for (int i = 0; i < mPackageInfo.size(); i++)
  {
   //獲取到AP包名  
   if (mPackageInfo.get(i).packageName.equals("com.google.android.apps.plus"))
   {
    isInstalling = true;
    break;
   }
  }

[Android SDK特色教學] 意圖Intent Play app至指定的package

有安裝google play的話就開啟程式,如果沒有的話就開啟網頁版的 

String sParam = "com.google.android.apps.plus";

try
{
    // Open app with Google Play app
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+sParam));
    startActivity(intent);
}
catch (android.content.ActivityNotFoundException anfe)
{
    // Open Google Play website
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id="+sParam));
    startActivity(intent);
}

2013年8月5日 星期一

[Android app開發基本概念] SQLite使用儒約日比較日期字串區間

我測試了無數的結果顯示,只有使用儒約日來比較是最完美無缺的!
可能是我的問題吧,我使用了datetime()含式來比較比沒有返回應該的結果。
我也是用了最簡單的BETWEEN來比較某期間的日期,也是沒有返回正確的結果。