2012年11月26日 星期一

Android程式設計 - 使用相機LED做為手電筒


Android手機都配備一個高亮度白光LED做為相機閃光燈,程式中可控制這個高亮度白光LED把手機當成手持照明設備。
方法是調用setFlashMode(Parameters.FLASH_MODE_TORCH)方法設定閃光燈模式,讓LED在相機進到預覽模式時就處於ON狀態。程式碼如下:
  import android.hardware.Camera;
  import android.hardware.Camera.Parameters;
  ...
  Camera camera = Camera.open();
  Parameters p = camera.getParameters();
  p.setFlashMode(Parameters.FLASH_MODE_TORCH);
  camera.setParameters(p);
  camera.startPreview();        //開啟LED
調用camera.stopPreview()方法結束預覽模式即可關閉LED。而在結束程式前應調用release()方法釋放相機資源。
注意!要操控相機的LED,應用程式之AndroidManifest.xml文件中必須宣告android.permission.CAMERA使用權限。

2012年11月20日 星期二

使用JavaScript設計Apps

想用JavaScript設計Android Apps或iOS Apps,可試試這一款Appcelerator Titanium工具



2012年11月19日 星期一

Android程式設計 - 控制手機震動器

使用getSystemService(Context.VIBRATOR_SERVICE)方法取得振動器物件,之後可透過以下方法來控制手機振動器:
l void vibrate (long milliseconds)
使震動器作用一段指定時間。
milliseconds                震動器震動時間,單位為毫秒。
l void vibrate (long[] pattern, int repeat)
使震動器依給定的作用及次數。
pattern                        震動器動作方式。
repeat                         重複震動器動作之pattern資料索引值,設定為-1表示不重複。
例如下列程式碼會使震動器先靜止2秒後震動0.5秒,之後停留3秒震動0.5秒一直重複。
  Vibrator vibrator = null ;
  vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
  long[] pattern = {2000, 500, 3000, 500};
  vibrator.vibrate(pattern, 2);
結束程式前應透過cancel ()方法中止震動器。
注意!要操控震動器,應用程式之AndroidManifest.xml文件中必須宣告android.permission.VIBRATE使用權限。

2012年11月16日 星期五

大師談"優秀企劃人員必須具備的10個條件"

聽聽遊戲界大師Gordon Walton談"優秀企劃人員必須具備的10個條件":


10.對遊戲的熱情
9.深度廣度兼具的知識
8.問題的解決和分析能力
7.Flexibility 通融性
6.KISS (Keep it super simple)
5.與玩家神會(Player Empathy)
4.持續不斷的學習
3.團隊合作
2.正面思考
1.明確的溝通



Android程式設計 - 使用SlidingDrawer元件

SliderDrawer(滑軌抽屜元件)提供動態開啟/關閉版面功能,預設內含一個Button物件(@+id/handle)及一個LinearLayout佈局(@+id/content)。handle物件就是讓用者拉動滑軌抽屜的把手,content內則可依需要放置其它版面內容,就是拉開抽屜時所要顯示的內容。
使用者可透過點擊SliderDrawerhandle來開啟/關閉抽屜,也可直接拖曳handle來開啟/關閉抽屜。另外也可在程式中使用以下方法來控制SliderDrawer
l void open ()
打開SliderDrawer
l void close ()
闗閉SliderDrawer
l void toggle ()
切換SliderDrawer狀態。
l void animateClose ()
以動畫方式打開SliderDrawer
l void animateOpen ()
以動畫方式闗閉SliderDrawer
l void animateToggle ()
以動畫方式切換SliderDrawer狀態。

為了讓SliderDrawer版面看起來更美觀,我們可使用ImageView元件取代預設的Button物件。





2012年11月1日 星期四

Android程式設計 - JSON資料處理(5)


處理網站回傳的JSON資料
對於網站回傳的JSON資料,其處理方式與處理JSON文件檔案作業大同小異,只是將原先由檔案串流讀取資料改為使用HTTP串流讀取資料。
假設http://mysite/testjson.php回傳的JSON資料,我們可以透過以下程式碼將回傳的JSON資料建立JSONObject
  URL jsonUrl = new URL("http://mysite/testjson.php");
  URLConnection c = jsonUrl.openConnection();
  c.setConnectTimeout(5000);        //設定連線逾期時間
  is = c.getInputStream();
  BufferedReader reader = new BufferedReader(new InputStreamReader(
            is, "big5"));
  Writer writer = new StringWriter();
  char[] buffer = new char[1024];
  int n;
  while ((n=reader.read(buffer)) != -1) writer.write(buffer, 0, n);
  is.close();
  String jsonstr = sb.toString();
  JSONObject json = new JSONObject(jsonstr);
同樣地,後續就可依據JSON文件結構一層一層解讀JSON資料。