2010年8月17日 星期二

教師赴公民營機構研習 - 多平台遊戲軟體引擎技術之剖析與應用

本次研習內容非常豐富,兼顧理論與實務,內容包括產業脈動、3D遊戲引擎技術與應用、產學合作交流座談及企業參訪,對往後開授相關課程或媒合產學合作或學生實務專題有相當大的助益。

網要如下:
1. 樂陞科技股份有限公司產品介紹/全球化營運介紹
2. 遊戲軟體引擎技術-30年來的天蠶變
3. 如假似真之3D引擎技術大揭密
4. 3D引擎技術之應用實例
5. 無遠弗屆之網路引擎技術大揭密
6. 網路引擎技術之應用實例
7. 扮演幕後功臣之遊戲開發輔助工具
8. 遊戲開發輔助工具之應用實例
9. 產學交流座談:發掘產學合作機會
10. 企業參訪-樂陞科技

樂陞科技
http://www.xpec.com.tw/

2010年8月1日 星期日

Android程式設計 (十五) 使用SharedPreferences

偏好設定(SharedPreferences)提供一個簡易的方式來儲存應用程式的設定值,方便下次應用程式被啟動時,載入偏好設定,讓應用程式自動回復到前一次設定值。此外,也可與同一套件之應用程式共享。
要使用SharedPreferences功能,應用程式需要匯入以下類別。
import android.content.SharedPreferences;
儲存偏好設定
Preference是以name-value pair方式儲存應用程式狀態,通常我們會在應用程式的onPause()方法中進行偏好設定儲存作業。首先透過getSharedPreferences()方法取得指定偏好設定檔:
public SharedPreferences getSharedPreferences (String name, int mode)
其中name為偏好設定檔名稱;mode則是偏好設定檔作業模式,MODE_PRIVATE (0)表示應用程式專用;MODE_WORLD_WRITEABLE (1)表示可與套件之其它應用程式共用。
接下來就可透過SharedPreferences.Editor編輯介面來更新偏好設定內容。這項作業必須先使用edit()方法取得SharedPreferences.Editor編輯介面,再使用putBoolean()putFloat()putInt()putLong()putString()方法來分別寫入布林資料、浮點數資料、整數資料、長整數資料及字串資料到偏好設定檔中。
    public abstract SharedPreferences.Editor putBoolean (String key, boolean value)
    public abstract SharedPreferences.Editor putFloat (String key, float value)
    public abstract SharedPreferences.Editor putInt (String key, int value)
    public abstract SharedPreferences.Editor putLong (String key, long value)
    public abstract SharedPreferences.Editor putString (String key, String value)
在此key表示偏好設定檔中的資料名稱,value則是資料值。有一點要注意,這些偏好設定值並不會立即更新,而是等到執行commit()方法後才會寫回偏好設定檔。
Date date = new Date (System.currentTimeMillis());
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    SharedPreferences settings = getSharedPreferences ("PREF_DEMO", 0);
    SharedPreferences.Editor PE = settings.edit();
    PE.putString("LAUNCH_DATE", date.toString());
    PE.putInt("LAUNCH_COUNT", count+1);
    PE.commit();
}
讀取偏好設定
要讀取偏好設定內容時,同樣先透過getSharedPreferences()方法取得指定偏好設定檔,之後再使用getBoolean()getFloat()getInt()getLong()getString()方法來分別讀取偏好設定中的布林資料、浮點數資料、整數資料、長整數資料及字串資料。
    boolean getBoolean (String key, boolean defValue)
    float getFloat (String key, float defValue)
    int getInt (String key, int defValue)
    long getLong (String key, long defValue)
    String getString (String key, String defValue)
在此key表示偏好設定檔中的資料名稱,defValue則是資料預設值。下面程式碼在應用程式一開始取回偏好設定值。
  int count=1;
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    SharedPreferences settings = getSharedPreferences("PREF_DEMO", 0);
    String LastDate = settings.getString("LAUNCH_DATE", "2010-01-01");
    count = settings.getInt("LAUNCH_COUNT", 1);
    view_date = (TextView) findViewById (R.id.txtDATE);
    view_count = (TextView) findViewById (R.id.txtCOUNT);
    view_date.setText ("Last launched: " + LastDate );
    view_count.setText ("Launched times: "+ count);
}