2016-07-19 8 views
0

画像をダウンロードする方法はたくさんありましたが、実際には機能していませんでした。 ビットマップをダウンロードするための新しいスレッドを作成しました。これをシステムストレージに保存したり、後で使用するためにメモリにキャッシュしたりしませんでした。私がこのアクティビティを何度も開い続けると、このアプリのRAM使用量はますます高くなっています。私はそれをまったく望んでいません!Android、2つの画像を効率的にダウンロードする方法

   URL url = new URL("http://10.0.0.21:80/1.png"); 
       bitmapOne = BitmapFactory.decodeStream(url.openStream()); 

       URL url2 = new URL("http://10.0.0.21:80/2.png"); 
       bitmapTwo = BitmapFactory.decodeStream(url2.openStream()); 

       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         image.setImageBitmap(bitmapOne); 
         image2.setImageBitmap(bitmapTwo); 
        }}); 

ありがとうございました!しかし... イメージをロードするために純粋なJavaとサードパーティのライブラリを使用したいのですが、私はメモリ使用量を減らす方法を探していました。また、2つのURLを持って各ストリームをロードすることは、クライアントが特定の瞬間に切断できるようにプロフェッショナルに見えます(ちょうどそれを行うことができます)と両方極端に必要ですです!

+0

あなたがやっていることは純粋なAndroidを使って画像をダウンロードする唯一の方法です。他のサードパーティのライブラリを使い始める場合を除きます。しかしそれはあなたがしていることにかかっています。それだけでそれを作り、それを生産すれば、それは第三者と大丈夫でしょう。あなたの上司にご確認ください。 Best of Luck – MNM

+1

[Androidで画像をダウンロードして保存する方法]のコピーを複製する可能性があります(http://stackoverflow.com/questions/15549421/how-to-download-and-save-an-image-in-android) – mbmc

+1

@MNM私は投稿を編集しました。あなたのコメントに感謝します。本当に私を助けた –

答えて

1

使用ピカソライブラリ、すべては風のようになります

ImageView imageView = (ImageView) findViewById(R.id.imageView); 

Picasso.with(this) 
     .load("http://SomeUrl/CodeFeature.jpg") 
     .into(imageView); 

良いチュートリアルがhereを見つけることができます。

0

https://github.com/zetbaitsu/Compressor

使用法: compressedImageBitmap = Compressor.getDefault(本).compressToBitmap(actualImageFile)。

このライブラリは役に立ちます。

GitHubにアクセスできます。検索 "Android"、並べ替え:"Most Stars" 、たくさんの素晴らしいライブラリが見つかります。

0

ボレーは、アニメーションGIFを表示する機能も備えています。このスニペットは、基本的な使用方法を示し、ここでは画像キャッシュ、あなたのアプリがあまりにも厳しいメモリとネットワークではないと作ることができるものと:

ImageLoader.ImageCache imageCache = new BitmapLruCache(); 
    ImageLoader imageLoader = new ImageLoader(Volley.newRequestQueue(getApplicationContext()), imageCache); 
    NetworkImageView myImage = (NetworkImageView) findViewById(R.id.myImageView); 
    myImage.setImageUrl(""+mSpeaker.getHeadshotUrl(), imageLoader); 
    loadBitmap("http://yourdomain.com/yourImage.jpg", myImage); 
これが機能するために

あなたが必要とするすべてはバレーボールのライブラリであるとBitmapLruCache.java

関連する問題