2014-10-22 3 views
0

Вопрос 1: Возможно ли загрузить файл изображения без ссылки на ImageView?AQuery: как загрузить изображения в несекретном порядке без ссылки на imageView в вызове aQuery

Вопрос 2. Могу ли я загрузить каждый файл в отдельном экземпляре aQuery или мне нужно загрузить файл последовательно? например, ожидание обратного вызова текущей загрузки файла, а затем запуск следующего вызова загрузки файла? Ниже мой код

// Ad мой пользовательский класс модели

// adList мой список объявлений, имеющих URL, чтобы объявления прошла где-то

// 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, который отменяет предыдущий вызов загрузки изображения.

+0

Да, вы можете использовать вызов ajax без ссылки на изображение. –

ответ

2

1) Вы можете использовать ajax-вызов без ссылки на ImageView для загрузки изображения.

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

Работает как очарование. –

+0

и как изменить размер изображения и сохранить его в файле с водой? благодаря – SERG

0

Вы можете использовать Picasso Он сделает все загрузки, а также кеширование изображений.

В любом случае, если изображения довольно малы, вы должны подготовить файл «zip» и dl все из них с помощью AsyncTask/Thread и разархивировать их. Открытие и закрытие соединений с сервером - это «очень дорогостоящие» операции, требующие много времени.

+0

Благодарим вас за сообщение, androidQuery более силен, легче и быстрее, чем другие библиотеки, которые я использовал. –

+0

Я использовал в прошлом AQuery, но за последние 8 месяцев больше не обновляется, поэтому я предпочитаю использовать то, что постоянно поддерживается. но это что-то действительно личное. – danysz

0

Вот способ получения растрового изображения из URL с помощью AQuery статический Bitmap 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) { 

     } 
    }); 

Im извините за ответ поздно, но это лучшая библиотека я когда-либо сталкивался.

Да, вы можете скачать. Объект Bitmap даст вам изображение.

Вы можете создать несколько экземпляров Aquery, если вы хотите загрузить или передать каждый URL после завершения одной загрузки, вы можете использовать любой цикл для этого.