首先Activity.java的写法如下
package com.lujianfei.active; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.widget.GridView; import android.widget.ImageView; import android.widget.SimpleAdapter; import android.widget.SimpleAdapter.ViewBinder; import com.lujianfei.data.IData; import com.lujianfei.data.IDataFactory; import com.lujianfei.util.BitmapHelper; public class VideoprojActivity extends Activity { IData data = null; IDataFactory dataFactory = null; GridView gridview = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.videoproj_gridview_layout); gridview = (GridView) findViewById(R.id.gridview); ArrayList<HashMap<String,Object>> list=new ArrayList<HashMap<String,Object>>(); HashMap<String,Object> map=null; for(int i=0;i<3;i++) { map=new HashMap<String,Object>(); map.put("ItemImage",BitmapHelper.getBitmap("http://192.168.1.119:8080/strutsproj/upload/type1.jpg")); map.put("ItemText","ItemText"+i); list.add(map); } SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.videoproj_gridview_item_layout,new String[]{"ItemImage","ItemText"},new int[]{R.id.ItemImage,R.id.ItemText}); adapter.setViewBinder(new ViewBinder(){ public boolean setViewValue(View view, Object data, String textRepresentation) { //判断是否为我们要处理的对象 if(view instanceof ImageView && data instanceof Bitmap){ ImageView iv = (ImageView) view; iv.setImageBitmap((Bitmap) data); return true; }else return false; } }); gridview.setAdapter(adapter); } }
核心类 BitmapHelper.java
package com.lujianfei.util; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class BitmapHelper { public static Bitmap getBitmap(String imageUrl) { Bitmap mBitmap = null; try { URL url = new URL(imageUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStream is = conn.getInputStream(); mBitmap = BitmapFactory.decodeStream(is); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return mBitmap; } }
videoproj_gridview_layout.xml
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="90dp" android:stretchMode="columnWidth" android:gravity="center" />
videoproj_gridview_item_layout.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="4dip" > <ImageView android:id="@+id/ItemImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" > </ImageView> <TextView android:id="@+id/ItemText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/ItemImage" android:layout_centerHorizontal="true" android:text="TextView01" > </TextView> </RelativeLayout>
运行效果如下