2013-10-25 3 views
3

Я пытаюсь создать изображение галереи, используя ViewPager. Я нашел несколько примеров, и у меня есть все, чтобы работать. Единственное, что не показаны в примерах, это то, как заполнить ViewPager, используя загруженные изображения из URL-адреса. Все учебники либо имеют изображения в папке Drawables, либо на SD-карте. Кто-нибудь знает пример, когда ViewPager получает изображения из URL-адреса. Я нашел примеры Lazy Загрузка GridView и ListView, но я недостаточно умен, чтобы преобразовать их в рабочий ViewPager. В основном я сталкиваюсь с проблемами с классами адаптера. Примеры Lazy Loading, похоже, используют BaseAdapter, и я думаю, что ViewPager должен использовать PagerAdapter правильно? Итак, есть ли какие-либо примеры ViewPager, которые получают изображения с URL-адреса? Что мне нужно ViewPager сделать, это загрузить изображения из массива строк что-то вроде этого:Android ViewPager: загрузка изображений с URL-адреса

String[] imageGalleryStr = { 
    "http://www.website.com/images/image01.png", 
    "http://www.website.com/images/image02.png", 
    "http://www.website.com/images/image03.png", 
    "http://www.website.com/images/image04.png", 
    "http://www.website.com/images/image25.png", 
    "http://www.website.com/images/image26.png", 
    "http://www.website.com/images/image27.png", 
    "http://www.website.com/images/image28.png" }; 

Любые идеи?

ответ

4

использовать эту библиотеку для изображения Galary https://github.com/nostra13/Android-Universal-Image-Loader

+1

Я уже пробовал Universal Image Loader, но не смог найти хороший учебник о том, как его реализовать. Но я, наконец, нашел один, и я получил Universal Image Loader для работы! – kirktoon1882

+0

отлично !!!!!!!!! –

+1

@ kirktoon1882, я знаю, что уже поздно, но не согласен ли вы использовать этот урок, который вы упомянули? – Felix

1

Я бы порекомендовал вам использовать библиотеку Volley, та же библиотека, используемая Google в приложении Google Play. Пожалуйста, проверьте этот ответ: Getting Bitmap images from server to set on ImageView

1

Я еще не пробовал этот код, но, надеюсь, что-то подобное должно работать на вас. :)

@Override 
public Object instantiateItem(final ViewGroup container, final int position) { 
    tagShown = false; 

    View view = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.image_view_item, container, false); 

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

    new DownloadImageInBackground(imageView).execute(imageGalleryStr[position]); 

    ((ViewPager) container).addView(view); 

    return view; 
} 

... 

private class DownloadImageInBackground extends AsyncTask<String, Void, Bitmap>{ 

    ImageView iv; 

    public DownloadImageInBackground(ImageView iv) { 
     this.iv = iv; 
    } 

    @Override 
    protected Bitmap doInBackground(String... params) { 
     // download bitmap from string url 
     return bitmap; 
    } 

    @Override 
    protected void onPostExecute(Bitmap result) { 
     super.onPostExecute(result); 
     iv.setImageBitmap(result); 
    } 
} 
0

Если у вас уже есть рабочий шаблон (ViewPager), может быть, вы могли бы выбрать один из библиотеки для получения изображений/растровых изображений со всей сетью, а затем обернуть загрузчик для изображений внутри типа фрагмента оперированных по ViewPager ...

Когда пейджер называет «onCreateView» на типе поискового вызова, то есть что-то вроде:

imgLoadr.DisplayImage(mMap.get("pic"), imgView); 

Вашей реализация «DisplayImage» построен на одном из многочисленных библиотек для сетевого управления изображениями и включает в себя следующие данные:

DisplayImage implementation looks first for a properly scaled bitmap in memory... 
then it looks for a bitmap in local file system cache... 
then it fetches the file from across the network and feeds the network stream to get instances of local bitmap/caches. 

Ваше сообщение касается только последний пункт выше, но ИМО вы, возможно, придется стать интерес во всем списке, потому что это только часть работы с изображением ориентированных на приложение ..

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

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