2016-12-01 3 views
-1

私はこのアプリケーションをボタンでクリックして表示することで、サーバーから画像を取得したいプロジェクトを開発しています。このシナリオのコードを私と共有してください。私を助けてください。サーバーからボレーを介してアンドロイドで画像を取得する

+0

何を試しましたか?いくつかの*コードを見せてください。 –

+0

実際の問題とそのエラーに関するコードと説明を記入してください。あなたは例がgithub.com –

+0

http://www.truiton.com/2015/03/android-volley-imageloader-networkimageview-example/の検索を使用する必要がある場合は、それを –

答えて

0

ような方法であなたのキャッシュメカニズムを作成します。その後、

/** 
    * Image caching used by volley image loader 
    * Created by tasneem on 23/7/15. 
    */ 

    import android.graphics.Bitmap; 
    import android.support.v4.util.LruCache; 

    import com.android.volley.toolbox.ImageLoader.ImageCache; 

    public class LruBitmapCache extends LruCache<String, Bitmap> implements 
      ImageCache { 
     public static int getDefaultLruCacheSize() { 
      final int maxMemory = (int) (Runtime.getRuntime().maxMemory()/1024); 
      final int cacheSize = maxMemory/8; 

      return cacheSize; 
     } 

     public LruBitmapCache() { 
      this(getDefaultLruCacheSize()); 
     } 

     public LruBitmapCache(int sizeInKiloBytes) { 
      super(sizeInKiloBytes); 
     } 

     @Override 
     protected int sizeOf(String key, Bitmap value) { 
      return value.getRowBytes() * value.getHeight()/1024; 
     } 

     @Override 
     public Bitmap getBitmap(String url) { 
      return get(url); 
     } 

     @Override 
     public void putBitmap(String url, Bitmap bitmap) { 
      put(url, bitmap); 
     } 
    } 

そして、このような方法であなたのVolleyControlerに追加します。

import android.app.Application; 
import android.text.TextUtils; 
import android.util.Log; 

import com.android.volley.DefaultRetryPolicy; 
import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.toolbox.ImageLoader; 
import com.android.volley.toolbox.Volley; 
import com.zingoy.app.ZingoyApplication; 

    /** 
    * Class for handling all network requests 
    * @author tasneem 
    */ 
    public class VolleyController extends Application { 

    public static final String TAG = VolleyController.class.getSimpleName(); 

    private static VolleyController mInstance; 
    private RequestQueue mRequestQueue; 
    private ImageLoader mImageLoader; 

    private VolleyController() { 
     mRequestQueue = mRequestQueue != null ? mRequestQueue : Volley.newRequestQueue(ZingoyApplication.getAppContext()); 
     mImageLoader = new ImageLoader(mRequestQueue, new LruBitmapCache()); 
    } 

    public static synchronized VolleyController getInstance() { 
     mInstance = mInstance != null ? mInstance : new VolleyController(); 
     return mInstance; 
    } 

    public RequestQueue getRequestQueue() { 
     Log.d(TAG, "Cancelling request"); 
     return mRequestQueue != null ? mRequestQueue : Volley.newRequestQueue(getApplicationContext()); 
    } 

    public ImageLoader getImageLoader() { 
     return mImageLoader != null ? mImageLoader : new ImageLoader(mRequestQueue, new LruBitmapCache()); 
    } 
} 

をそして、あなたはあなたが使用することができ、あなたの画像をレンダリングしたいとき:

imageLayout.setImageUrl(url, VolleyController.getInstance().getImageLoader()); 
+0

プライベートVolleyController(){ mRequestQueue = mRequestQueueをチェック! = null? mRequestQueue:Volley.newRequestQueue(ZingoyApplication.getAppContext()); mImageLoader = new ImageLoader(mRequestQueue、new LruBitmapCache()); } 私はVolley.mRequestQueue(???)に何を書いていますか。助けてください。アンドロイドに新しい投稿があります。 –

+0

@AliMehdi、申し訳ありませんでした。あなたはまだここで助けが必要ですか? – Tasneem

関連する問題