2012-02-15 15 views
9

私はウェブから画像をダウンロードし、画像が(RemoteImageView、点火パッケージhereの一部をダウンロードしている間アンドロイド - URLとして参照リソースの描画可能

プレースホルダのアニメーションを示して、私のAndroidアプリでAPIを使用しています。アプリでいくつかの点で

、私はローカルリソースドローアブルから画像を表示し、Webからダウンロードしないようにする必要があります。

ことが可能とされているURLを使用してローカルリソースドローアブルにアクセスするには?

答えて

3

ローカル画像リソースがありませんURIを持っていないので、あなたがdrawableのイメージを持っているならば、あなたはtリソースIDからURIへの裾野。

ただし、イメージをパッケージのアセットフォルダに配置し、そのURLを使用してアクセスすることもできます。画像ファイルのURLは "file:///android_asset/image.png" のいずれかのオプションを使用できます。

+0

Uri.parseは、R.drawable.imageが文字列である必要があると言っています。それは正しいことができない? –

+0

Woops、引用符を追加するのを忘れました。今修正されました。 – noob

+0

いいえ...どちらも動作しません。私はAPIがURLConnectionを介して接続していると思うし、URLのString表現を渡す必要があります。 Uri.parse()。toString()は元のStringを返すだけで、file:/// android_asset/..のいずれかのパスを返します。 –

10

それを実行する方法:便利なため

ここで使用この行を"android.resource://[your package]/"+[res id]

は一例であり

Uri myURI = Uri.parse("android.resource://com.example.project/" + R.drawable.myimage); 

あなたはメソッドとしてそれを使用することができます。

public static Uri getUrl(int res){ 
    return Uri.parse("android.resource://com.example.project/" + res); 
} 

警告は使用しないcontext.getPackageName()はnull値を返す可能性があるため、パッケージ名の代わりに使用します。

+0

アプリの初期化後にどのような場合にnullが返されますか?プログラムでロードしないと、パッケージを変更したビルドによってコードが破損します。 –

関連する問題