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; }}
ListView中混合使用Drawable文件夹资源和网络资源
最新推荐文章于 2021-05-25 21:59:54 发布