ViewPager+动态加载网络图片

原创 2015年07月10日 15:25:49

前言:昨晚上师傅让我写了发给一个人的,因为我很闲,于是就写了,网上我看到好多例子,涉及到好多类,看的头疼还不如自己写,一个类搞定,如下:(PS:防止以后忘记)xml里面就一个ViewPager控件,没啦,哈哈^_^.

package com.yalantis.contextmenu.sample;

import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.yalantis.contextmenu.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class MainActivity2Activity extends ActionBarActivity {
    ViewPager viewPager;
    ViewPagerAdapter adapter;
    List<Map<String, Object>> data;
    protected ImageLoader imageLoader = ImageLoader.getInstance();
    DisplayImageOptions options;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_activity2);
        init();
    }

    public void init() {
        viewPager = (ViewPager) findViewById(R.id.mypager);
        data = getData();
        imageLoader=ImageLoader.getInstance();
        imageLoader.init(ImageLoaderConfiguration.createDefault(this));
        options = new DisplayImageOptions.Builder()
                .showStubImage(R.drawable.ic_launcher) // 在ImageView加载过程中显示图片
                .showImageForEmptyUri(R.drawable.ic_launcher) // image连接地址为空时
                .showImageOnFail(R.drawable.ic_launcher) // image加载失败
                .cacheInMemory(true) // 加载图片时会在内存中加载缓存
                .cacheOnDisc(true) // 加载图片时会在磁盘中加载
                .build();
        adapter = new ViewPagerAdapter(data);
        viewPager.setAdapter(adapter);
    }

//这个方法长度是动态的,可以改成你从服务器获取的图片,这样数量就不确定啦
    public List<Map<String, Object>> getData() {
        List<Map<String, Object>> mdata = new ArrayList<Map<String, Object>>();
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("url", "http://img2.duitang.com/uploads/item/201207/19/20120719132725_UkzCN.jpeg");
        map.put("view", new ImageView(this));
        mdata.add(map);

        Map<String, Object> map1 = new HashMap<String, Object>();
        map1.put("url", "http://img4.duitang.com/uploads/item/201404/24/20140424195028_vtvZu.jpeg");
        map1.put("view", new ImageView(this));
        mdata.add(map1);

        Map<String, Object> map2 = new HashMap<String, Object>();
        map2.put("url", "http://download.pchome.net/wallpaper/pic-5041-8-240x320.jpg");
        map2.put("view", new ImageView(this));
        mdata.add(map2);

        Map<String, Object> map3 = new HashMap<String, Object>();
        map3.put("url", "http://www.mangowed.com/uploads/allimg/130425/572-130425105311304.jpg");
        map3.put("view", new ImageView(this));
        mdata.add(map3);
         return  mdata;
    }

    public class ViewPagerAdapter extends PagerAdapter {

        List<Map<String,Object>> viewLists;

        public ViewPagerAdapter(List<Map<String,Object>> lists)
        {
            viewLists = lists;
        }

        @Override
        public int getCount() {                                                                 //获得size
            // TODO Auto-generated method stub
            return viewLists.size();
        }

        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            // TODO Auto-generated method stub
            return arg0 == arg1;
        }

        @Override
        public void destroyItem(View view, int position, Object object)                       //销毁Item
        {
            ImageView x=(ImageView)viewLists.get(position).get("view");
            x.setScaleType(ImageView.ScaleType.FIT_CENTER);
            ((ViewPager) view).removeView(x);
        }

        @Override
        public Object instantiateItem(View view, int position)                                //实例化Item
        {
            ImageView x=(ImageView)viewLists.get(position).get("view");
            x.setScaleType(ImageView.ScaleType.FIT_CENTER);
            imageLoader.displayImage(viewLists.get(position).get("url").toString(), x,options);
            ((ViewPager) view).addView(x, 0);

            return viewLists.get(position).get("view");
        }

    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

android的ViewPager实现加载网络图片并自动轮播

现在我们来实现加载网络图片。使用的是第三方库 facebook的Fresco。
  • aotian16
  • aotian16
  • 2016年06月16日 19:45
  • 5302

ViewPager加载网络图片+自动轮播+小圆点指示

handler接收消息更新pager页Handler handler = new Handler() { public void handleMessage(android.os.Me...
  • qq_35658238
  • qq_35658238
  • 2016年09月22日 21:52
  • 1386

Android ViewPager从网络获取图片实现无限轮播

本文主要实现了viewpager无限轮播的效果,且图片是从网络上获取的,直接看代码吧: MainActivity代码:package com.example.viewpagertest;import...
  • yaochangliang159
  • yaochangliang159
  • 2015年09月26日 21:39
  • 6731

android viewpager 动态从网络获取图片

上篇说的加载网络图片的优化。 用的 listview 和 网格测试的 。可能有些人就会觉得用到   AsyncTask 太耗费资源了,当然你可以用 handler处理实现。 这里贴上1个Vie...
  • kongbaidepao
  • kongbaidepao
  • 2013年11月24日 16:24
  • 6486

Android ViewPager 如何显示大量图片

我最近想用ViewPager 来实现类似图片Gallery的效果:即滑动的时候图片一张一张显示!先搜了一下网上关于ViewPager的用法,千篇一律的都是如下的列子: public class MyP...
  • wangbaochu
  • wangbaochu
  • 2016年05月23日 23:03
  • 2930

ViewPager的Adapter总结

ViewPager的使用需要导入包:android.support.v4.view.ViewPager, ViewPager的适配器为PagerAdapter.ViewPager需要实现一个Pager...
  • qq_30716173
  • qq_30716173
  • 2016年06月05日 14:55
  • 2477

Android之网络图片加载的5种基本方式

  • 2017年03月01日 21:21
  • 41.02MB
  • 下载

Android进阶之动态加载图片(AsyncTask异步加载并显示进度条)

1、权限 2、activity_bitmap_async_task.xml
  • chenliguan
  • chenliguan
  • 2015年09月18日 09:26
  • 899

动态创建ImageView

1.布局文件
  • lyy1104
  • lyy1104
  • 2014年08月27日 14:00
  • 31156

Android:ViewPager详解(异步网络加载图片,带图片缓存,并带导航小圆点)

android 应用中,如欢迎指引页面, 和图片轮播功能, 或者更多的内容在一页显示不了,要分成多个页面,这时候viewpager是很好用的。 首先看下效果: 下面是一个例...
  • Andy_LTZ
  • Andy_LTZ
  • 2016年04月28日 09:55
  • 2011
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ViewPager+动态加载网络图片
举报原因:
原因补充:

(最多只允许输入30个字)