2011-07-08 10 views
5

私のアプリは、スプラッシュ画面が開始されたとき私はちょうどURLを押して、XMLファイルを取得しています。そのXMLファイルから、ユーザー名、ID、URLなどのデータを解析して画像をダウンロードしています。そのURLから私は画像をダウンロードしたいと思うし、私は自分のアプリケーション自体に特定の名前で画像を保存したい。私は別の活動の背景として同じ画像を使用したい。どうすれば私のアプリに画像をダウンロードして保存することができますか?どこで私のアプリには、生のフォルダまたはdrawableのいずれかに格納することができます。Android - 画像をダウンロードして実行時に使用するにはどうすればいいですか?

画像は、特定の活動に背景画像として設定することができますどのように来るの名前を格納する前に、私を助けてください友人

答えて

4

これはURLからあなたのイメージをダウンロードするためのコードです:

InputStream in = new URL(image_url).openConnection().getInputStream(); 
Bitmap bm = BitmapFactory.decodeStream(in); 
あなたが使用して、システム上のビットマップを保存することができるよりもそれは(asynctaskでのように)非同期的に行われるべきであることを

注意

File fullCacheDir = new File(Environment.getExternalStorageDirectory(),cacheDir); 
String fileLocalName = name+".JPEG"; 
File fileUri = new File(fullCacheDir, fileLocalName); 
FileOutputStream outStream = null; 
outStream = new FileOutputStream(fileUri); 
image.compress(Bitmap.CompressFormat.JPEG, 75, outStream); 
outStream.flush(); 

これは画像を保存する方法の一例に過ぎず、他の方法もあります。とにかくドキュメントを見てください。

+1

public static Drawable drawable = null; //get image from URL and store it in Drawable instance public void getImageFromURL(final String urlString) { Thread thread = new Thread() { @Override public void run() { //TODO : set imageView to a "pending" image InputStream is = null; try{ URLConnection urlConn = new URL(urlString).openConnection(); is= urlConn.getInputStream(); }catch(Exception ex){} drawable = Drawable.createFromStream(is, "src"); } }; thread.start(); } 

セットの背景画像をしたいアプリケーションだけでマイナーにそれを使用。実際に 'File'に' toString'を呼び出す必要はありません。 'File'クラスは' File(File parent、String child) 'のようなコンストラクタを持っています – Kaj

+0

ありがとう、コード –

1

アプリケーションに必要な場合。より良いDrawableのインスタンスとして保存画像をダウンロードして、あなたが任意のビュー

void setImage(View myView){ 
    myView.setBackgroundDrawable(drawable); 
} 
+0

を更新しようとしていますが、まだどこかに格納する必要があります。あなたはどのようにdrawableを保管しますか? – Sunny

関連する問題