2010-11-29 4 views
2

私のプロジェクトこのクラスでは、画像のプロパティにアクセスしたいクラスがあります。しかし、私はこのクラスを通してそれを見せたくありません。このクラスでは、イメージの幅と高さを知り、何かを返すためにいくつかの数学関数を行いたいだけです。Android:自分のクラスのリソースにアクセスできますか?

私の問題はリソースにアクセスできないことです。例えば、私は

image = BitmapFactory.decodeResource(this.getResources(), R.drawable.tasnim); 

を書くときにはタイプステゴ(ステゴは私のクラス名である)ため、未定義のメソッドgetResources()を言います。

どうすればいいですか?

public class Stego() 
{ 
    Public Stego(){ 
     image = BitmapFactory.decodeResource(this.getResources(), R.drawable.tasnim); 
     imWidth = image.getWidth(); 
     imHeight = image.getHeight(); 
    } 
} 

答えて

3

getResources()機能がContextクラスに属します。したがって、Stegoクラスが直接(または間接的に)Contextに拡張されていない限り、getResources()関数は使用できません。

ですから、アプリケーションのコンテキストへの参照を渡すだけです(例えば、Stegoクラスのコンストラクタなど)。または、必要なのは単一のリソースIDだけであれば、そのIDを渡す方が簡単かもしれません。

これは、例えば次のようになります。

Stego stego = new Stego(this); 
+0

[OK]を、ありがとう:あなたは、このようなあなたのStegoクラスのインスタンスを初期化することができ、あなたの活動から

public class Stego() { Public Stego(Context myAppContext){ image = BitmapFactory.decodeResource(myAppContext.getResources(), R.drawable.tasnim); imWidth = image.getWidth(); imHeight = image.getHeight(); } } 

。だからあなたの提案は何ですか? – Hesam

+0

@Hesam:私が答えて言ったように、アプリケーションのコンテキストへの参照を渡す必要があります*。小さなコードサンプルを追加しました。 – Nailuj

+0

愛するNailuj、それは動作します。再度、感謝します – Hesam

関連する問題