2011-02-05 12 views
0

ウェブから画像を読み込もうとしています。私が今までに持っているコードは以下の通りです:Android BitmapDrawableコンストラクタ未定義

 

Resources res = getResources(); 

InputStream is = (InputStream) new URL(url).getContent(); 

BitmapDrawable bitmapDrawable = new BitmapDrawable(res, is); 
// Error: The constructor BitmapDrawable(Resources, InputStream) is undefined 

最後の行は、コンストラクタが存在しないかのようにエラーを生成します。しかし、マニュアルは、次の言葉:


BitmapDrawable(入力ストリームがある) このコンストラクタは廃止されました。 BitmapDrawable(Resources、java.io.InputStream)を使用して、描画可能オブジェクトがターゲット密度を正しく設定していることを確認します。

BitmapDrawable(リソースres、InputStream is) 指定された入力ストリームからビットマップをデコードすることによって描画可能オブジェクトを作成します。


私は迷っています。どちらかがうまくいくはずです。何か問題があるか、ウェブから画像を読み込む別の方法を見つける必要があります。誰もが、このコードがコンパイルされない、または画像を読み込むためのよりよい方法を提案する(またはその両方)理由を知っていますか?

答えて

1

APIレベル5以降でコンストラクタが追加されました。古いAPIレベルを使用しているため、そのエラーが発生します。 Android 2.1(eclair)以降を使用するか、そのコンストラクタを使用しないでください。

私はこれを試み、それが働いた:

InputStream is = (InputStream) new URL(url).getContent(); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(is); 
+0

私はそれはそれだと思います。ありがとう。 APIレベル4を使用しているため、まだアップグレードされていない携帯電話でもアプリケーションが動作します。私は "リソースres"がどのようにイメージが表示されるかということがどれほど重要であるか分かりません。言い換えれば、「ドローイングが目標密度を正しく設定したことを保証する」とはどういう意味ですか? APIレベル5以上の携帯電話に使用するのに十分な重要性がある場合は、Androidのプログラマは通常どのようにこのようなケースを処理しますか? – user405821

+0

これはおそらく何か? http://developer.android.com/resources/articles/backward-compatibility.html – user405821