利用Xutils中的BitmapUtils请求网络图片

public class MainActivity extends Activity {
    //ViewPager中图片的网站地址
    private String[] imgUri={"http://192.168.56.1:8080/img1.jpg","http://192.168.56.1:8080/img2.jpg"};
    private ViewPager vp;
    private Button bt;
    private BitmapUtils bitmapUtils;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp = (ViewPager) findViewById(R.id.vp);
        bt = (Button) findViewById(R.id.button1);
        //创建bitmapUtils对象
        bitmapUtils = new BitmapUtils(this);
        //设置Vp
        vp.setAdapter(new PagerAdapter() {

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

            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return imgUri.length;
            }

            @Override
            public void destroyItem(ViewGroup container, int position,
                    Object object) {
                container.removeView((View)object);
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                //创建一个图片
                ImageView imageView = new ImageView(MainActivity.this);
                //通过bitmapUtils请求网络,并设置图片
                bitmapUtils.display(imageView, imgUri[position]);
                //添加到vp中
                container.addView(imageView);
                //返回imageView
                return imageView;
            }
        });
        vp.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                //如果滑动到最后一张图片,显示按钮
                if(arg0==(imgUri.length-1)){
                    bt.setVisibility(View.VISIBLE);
                }
                //如果不是最后一张,则隐藏按钮
                else{
                    bt.setVisibility(View.INVISIBLE);
                }

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });
        //点击按钮进行跳转
        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,OtherActivity.class);
                startActivity(intent);
                finish();

            }
        });
    }
}

OtherActivity

public class OtherActivity extends Activity {
    private ListView lv;
    private Handler handler=new Handler(){
        public void handleMessage(android.os.Message msg) {
            if(msg.what==0){
                //获取网络请求过来的字符串,
                String json=(String) msg.obj;
                //创建Gson对象
                Gson gson = new Gson();
                //用gson进行解析为Bean对象,并获取里面的集合,发送到adapter中
                Goods goods=gson.fromJson(json, Goods.class);
                List<Deal> list=goods.deals;
                BaseAdapter adapter=new MyAdapter(MainActivity.this,list);
                lv.setAdapter(adapter);
            }
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_other);
        lv = (ListView) findViewById(R.id.lv);
        //获取数据的方法
        inData();
    }

    private void inData() {
        //创建httpClient
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet("http://169.254.23.1:8080/goods.json");
        try {
            //请求网络获取结果
            HttpResponse response = httpClient.execute(httpGet);
            //如果结果码为200的话,说明请求道数据
            if(response.getStatusLine().getStatusCode()==200){
                //获取请求过来的字符串
                HttpEntity entity = response.getEntity();
                String string = EntityUtils.toString(entity, "utf-8");
                //用handler发送一个消息,里面有一个标记,和从网络请求的字符串string
                Message msg=new Message();
                msg.what=0;
                msg.obj=string;
                handler.sendMessage(msg);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

Adapter

//在构造函数中接受上下文,和list集合,创建bitmapUtils对象
public MyAdapter(Context context,List<Deal> list) {
        this.context=context;
        this.list=list;
        bitmapUtils = new BitmapUtils(context);
    }
//在getView方法中,设置控件
@Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        //获取控件
        ImageView img = (ImageView) view.findViewById(R.id.img);
        TextView title = (TextView) view.findViewById(R.id.title);
        TextView desc = (TextView) view.findViewById(R.id.desc);

        //用bitmaputils设置图片,
        bitmapUtils.display(img, list.get(arg0).image);
        //给控件赋值
        title.setText(list.get(arg0).title);
        desc.setText(list.get(arg0).desc);
        return view;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值