由於Android app 安裝到手機上的位置是開發人員無法得知的(或許有辦法,不過目前我不知道),所以取得專案的檔案就必須透過其內部的機制達成
我們通常是透過 android.content.Context 取得(Context要另外寫一篇文章了),別擔心,我們常寫的Activity就是繼承Context,所以要取得Context是非常容易的事。
大致上要取得檔案都會跟Context 中的getResources()有關。getResources()會回傳Resources物件,利用這個物件可以得到很多我們需要access的資源。
1. 取得圖檔 :
BitmapFactory.Options option = new BitmapFactory.Options();
Bitmap a1 = BitmapFactory.decodeResource(getResources(), R.drawable.a1, option);
a1就是取得的Bitmap檔,關於Bitmap的操作會在另一篇文章中說明。
2.取得XML檔:
XmlResourceParser parser = this.getResources().getXml(R.xml.aaa);
可以利用parser取得這個xml的資料,parser又是另一個故事了。
西西 發表在 痞客邦 留言(0) 人氣(3,668)
如果我們想要在另一個Thread中操控 UI ,在Swing中我們可以直接使用(可能會有些問題,不過還是可以直接用),不過,在Android就不行了。
如果我們直接使用的話,會丟出一個 android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views 錯誤
我們必須透過Message的傳遞來達到目的。
也蠻簡單的,
在要被操作的UI物件中(如View)宣告一個 android.os.Handler 物件,
然後覆寫public void handleMessage(Message msg),在該方法中便可以對UI進行操作。
而在Thread中則負責送出android.os.Message 物件到該 Handler。
這樣說好像不夠清楚,看一下code就懂了
// 做一個可以利用Thread修改的View
public class MyView extends View implements Runnable
{
西西 發表在 痞客邦 留言(1) 人氣(30,142)

開發Android程式通常會用eclipse來開發,然而通常會把訊息輸出到Logcat介面,要如何在eclipse看到Logcat介面,下面會簡單介紹。
以下是以 eclipse galileo 為例
西西 發表在 痞客邦 留言(0) 人氣(6,592)