2014-10-22 40 views
0

問題1:是否有可能下載圖像文件時未給出對ImageView的引用?AQuery:如何以非順序的方式下載圖像,而不參考aQuery調用中的imageView

問題2:我可以下載每個文件在一個單獨的aQuery實例中,還是必須按順序下載文件?例如等待當前文件下載的回調,然後觸發下一個文件下載呼叫?下面是我的代碼

//廣告是我的自定義模型類

// adList是我有網址的廣告某處

託管廣告的名單

// ImageView的是一種無形的ImageView作爲下載不開始,如果我不給任何ImageView的資源

for (String adUrl : adList) { 

    if (adUrl.length() > 0) { 
     AQuery aQuery = new AQuery(DownloadAdActivity.this); 
     BitmapAjaxCallback callback = new BitmapAjaxCallback(); 
     callBack.url(adUrl); 
     callBack.fallback(R.id.placeHolderResource); 
     callBack.fileCache(true); 
     callBack.memCache(true); 
     aQuery.id(imageView).image(callBack); 

    } 

} 

我需要下載20/30圖像時,應用程序啓動首次任何參考,到目前爲止,我被給予一個隱藏的ImageView的參考和trigging的做每個圖像之後依次使用aQuery已下載。我試圖在一個循環中生成20/30請求,但只有最後一個aQuery觸發器調用可以取消上一個圖像下載調用。

請指導我: 1-如何緩存圖像而不提供任何參考圖像查看 2-如何以並行方式下載圖像,而不是通過AQuery以順序方式下載圖像。

+0

是的,你可以使用沒有imageview引用的ajax調用 – 2014-10-22 05:31:16

回答

2

1)您可以使用不帶ImageView引用的ajax調用來下載圖像。

androidQuery.ajax("url", Bitmap.class, 0, new AjaxCallback<Bitmap>() { 
      @Override 
      public void callback(String url, Bitmap bitmap, AjaxStatus status) { 
       super.callback(url, bitmap, status); 

      } 
     }); 

2)默認情況下,您可以同時下載4個圖像。但是你可以按照您的要求改變這樣

AjaxCallback.setNetworkLimit(8); 
+0

工程就像一個魅力。 – 2014-10-22 19:02:57

+0

以及如何調整圖像大小並將其保存到aquery文件中?謝謝 – SERG 2014-11-22 10:43:39

0

您可以使用Picasso 它會進行圖像的所有下載和緩存。

無論如何,如果圖像非常小,您應該準備一個「zip」文件,然後用AsyncTask/Thread將它們全部解壓並將它們解壓縮。打開和關閉到服務器的連接是非常耗時的「非常昂貴的」操作。

+0

謝謝你的帖子,androidquery比我用過的其他庫更強,更輕,更快。 – 2014-10-22 19:03:39

+0

我在過去的AQuery中使用過,但在過去的8個月中實際上並沒有更新,所以我更喜歡使用持續維護的東西。但這是真正的個人。 – danysz 2014-10-22 19:34:48

0

這裏是方法,使用AQuery獲得來自URL位 靜態位圖MYBITMAP = NULL;

public static Bitmap getBitmapFromURL(String src) { 
    try { 
     Log.i(TAG, "Image Url is : " + src); 
     AQuery androidQuery = new AQuery(ChatApplication.getInstance()); 
     androidQuery.ajax(src, Bitmap.class, 0, new AjaxCallback<Bitmap>() { 
      @Override 
      public void callback(String url, Bitmap bitmap, AjaxStatus status) { 
       super.callback(url, bitmap, status); 
       if (bitmap != null) 
        myBitmap = bitmap; 
      } 
     }); 
    } catch (Exception e) { 
     Log.i(TAG, "Error due to " + e); 
    } 
    return myBitmap; 
} 
0
AQuery aq = new AQuery(context); 
    aq.ajax(url_of_image, Bitmap.class, new AjaxCallback<Bitmap>() { 

     @Override 
     public void callback(String url, Bitmap object, AjaxStatus status) { 

     } 
    }); 

對不起了回覆晚了,但是,這是我所遇到最好的圖書館。

是的,你可以下載。位圖對象將爲您提供圖像。

如果您希望在下載完成後下載或傳遞每個URL,則可以創建多個Aquery實例,您可以使用任何循環。