ListView中混合使用Drawable文件夹资源和网络资源

1、listview.xml<?xml version="1.0" encoding="utf-8"?> 2、listitem.xml<?xml version="1.0" encoding="utf-8"?> 3、package moile.drawable.main;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleAdapter;public class ListViewActivity extends Activity { private ImageView imageView ; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.listview); imageView = (ImageView)this.findViewById(R.id.image); //放置该ImageView是为了能够设置ListView中图片的大小 byte[] data = null;//1、使用Bitmap的方式 try { data = this.getImage("http://online.sccnn.com/icon/1202/01.png"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }//得到图片的二进制数据 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);//生成位图 ListView listView = (ListView)this.findViewById(R.id.listview); List<HashMap> list = new ArrayList<HashMap>(); HashMap map = new HashMap(); map.put("ItemImg",R.drawable.icon); map.put("ItemTitle", "第一行"); list.add(map); map = new HashMap(); map.put("ItemImg",R.drawable.icon_1); map.put("ItemTitle", "第二行"); list.add(map); map = new HashMap(); //1、使用Bitmap的方式 map.put("ItemImg",bitmap); map.put("ItemTitle", "我的Test"); list.add(map); SimpleAdapter m = new SimpleAdapter(this,list,R.layout.listitem, new String[]{"ItemImg","ItemTitle"}, new int[]{R.id.img,R.id.listtext}); listView.setAdapter(m); m.setViewBinder(new SimpleAdapter.ViewBinder() { @Override public boolean setViewValue(View view, Object data, String textRepresentation) { // TODO Auto-generated method stub if(view instanceof ImageView && data instanceof Bitmap){ //1、使用Bitmap的方式 ImageView iv = (ImageView) view; Bitmap bitmap = (Bitmap) data; Bitmap b = Bitmap.createScaledBitmap(bitmap, imageView.getDrawable().getIntrinsicWidth(), imageView.getDrawable().getIntrinsicHeight(), true);//创建一个可以缩放的位图对象 iv.setImageBitmap(b); return true; }else return false; } }); } public byte[] getImage(String path) throws Exception{ URL url = new URL(path); //get //post HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5*1000); InputStream inStream = conn.getInputStream(); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while( (len = inStream.read(buffer)) !=-1 ){ outStream.write(buffer, 0, len); } byte[] data = outStream.toByteArray();//图片的二进制数据 outStream.close(); inStream.close(); return data; }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值