关于GridView加载网络图片地址,把图片地址转成bitmap,并需加上setViewValue()方法,不然显示找不到路径
首先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>
原博客地址点击打开链接