2015-10-30 4 views
-1

Привет всем Я новичок в Android, мне грозит сложность загрузки нескольких изображений через URL-адрес в представление Recycler. Моя задача - не использовать какие-либо сторонние библиотеки и также не добавлять в строковый массив в xml-файл. Возможно ли связать URL? например, «http://onethousandpaintings.com/imgs/numbers/number_1.png», если число меняется, изображение соответственно изменяется. Попробуйте его один раз! Я думаю, способ увеличить это число в «For Loop», но не мог понять это. Просьба предоставить мне решение для этого.Загрузите несколько изображений Url без использования сторонних библиотек в Recyclerview

+0

Сторонние библиотеки уменьшают вашу работу в большей степени, если вы хотите выбрать трудные способы, которыми вы всегда будете рады. и я думаю, что это вопрос заданий. –

+0

Вы знаете какое-либо решение для него? –

+0

, затем использовать загрузчик изображений волейбола, он был встроен в библиотеку в студии –

ответ

0

Вы можете использовать AsynTask, чтобы он загружал несколько изображений с URL-адреса, что обеспечивает функциональность для работы в фоновом режиме. Таким образом, ваш основной поток не затрагивается, и изображения загружаются в фоновом режиме непрерывно. Надеюсь, это ответит на ваш вопрос.

2

@sample AsycTask Code, вы можете передать URL-адрес этому классу методом execute.

public class ShowImage extends AsyncTask<String,Void,Bitmap>{ 
    private WeakReference<ImageView> imageview; 
    public ShowImage(ImageView imv){ 
     imageview=new WeakReference<ImageView>(imv); 
    } 
     /** Background process 
       * input:url 
       * output: Bitmap image 
       * It passed into onPostExecute method 
       **/ 
    @Override 
    protected Bitmap doInBackground(String... urls) { 

     return getBitMapFromUrl(urls[0]); 

    } 
    /** This method called after the doINputBackground method 
    * input:Bitmap image 
    * output: image set into the image view 
    * Image view passed from RecyclerViewOperation to ShowImage class through constructor 
    **/ 
    @Override 
    protected void onPostExecute(Bitmap result) { 
     if((imageview!=null)&&(result!=null)){ 
      ImageView imgview=imageview.get(); 


      if(imgview!=null){ 

       imgview.setImageBitmap(result); 
      } 
     } 
    } 
    /** This method called by doInBackground method 
    * input:url 
    * output: Bitmap image 
    * 
    **/ 
    private Bitmap getBitMapFromUrl(String imageuri){ 
     HttpURLConnection connection=null; 

     try { 
      URL url=new URL(imageuri); 
      // Log.d("bucky","bitmap" + imageuri); 
      connection= (HttpURLConnection) url.openConnection(); 
      connection.setDoInput(true); 
      connection.connect(); 
      InputStream is=connection.getInputStream(); 
      Bitmap mybitmap=BitmapFactory.decodeStream(is); 

      return mybitmap; 


     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      return null; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } 
     finally { 
      if(connection!=null) { 
       connection.disconnect(); 
      } 
     } 
    } 

} 
Смежные вопросы