您的位置:首页 > 移动开发 > Android开发

Android关于ListView显示SD卡上的Bitmap的图片(图片压缩之后)

2012-07-09 17:55 537 查看
JAVA文件如下

package com.lostinai;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.SimpleAdapter.ViewBinder;

public class ListviewtutuActivity extends Activity {
	private ListView lv;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.home);
		lv = (ListView)findViewById(R.id.h_list_view);
		setViews();
		lv.setOnItemClickListener(new OnItemClickListener(){
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				Log.e("lostinai","lostinai");
			}
		});
	}
	private void setViews() {		
		
		SimpleAdapter adapter = new SimpleAdapter(this, getDatas() ,R.layout.message_list
				, new String[]{"icon","title","shortContent"}, new int[]{R.id.ml_icon,R.id.ml_title,R.id.ml_short_content});
		lv.setAdapter(adapter);
		adapter.setViewBinder(new ViewBinder() {  
            public boolean setViewValue(View arg0, Object arg1,  
                    String textRepresentation) {  
                if ((arg0 instanceof ImageView) & (arg1 instanceof Bitmap)) {  
                    ImageView imageView = (ImageView) arg0;  
                    Bitmap bitmap = (Bitmap) arg1;  
                    imageView.setImageBitmap(bitmap);  
                    return true;  
                } else {  
                    return false;  
                }  
            }  
        });  
	}
	private List<Map<String,Object>> getDatas() {
		List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
		for (int i=1; i<=12; i++) {
			Map<String,Object> map = new HashMap<String,Object>();
			 String imagePath = "/sdcard/"+2+".jpg";  
//			 图片压缩
			Bitmap bm = null;
			Options op = new Options();
			op.inSampleSize = 5; 
			op.inJustDecodeBounds = false;
			bm = BitmapFactory.decodeFile(imagePath, op);
			
			map.put("icon",bm);
			map.put("title", "My Title "+i);
			map.put("shortContent", "my short content "+i);
			list.add(map);
		}
		return list;
	}
}


home.xml文件如下

<?xml version="1.0" encoding="utf-8"?>
<ListView 
    xmlns:android="http://schemas.android.com/apk/res/android"
  	  android:id="@+id/h_list_view"
	  android:layout_width="fill_parent"
	  android:layout_height="fill_parent"
	/>


message_list.xml如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
	<ImageView android:id="@+id/ml_icon"
		android:layout_width="50dp"
		android:layout_height="58dp"
		android:src="@drawable/ic_launcher"
		/>
	<LinearLayout
	  xmlns:android="http://schemas.android.com/apk/res/android"
	  android:orientation="vertical"
	  android:layout_width="wrap_content"
	  android:layout_height="58dp"
	  android:layout_weight="1">
	  <TextView android:id="@+id/ml_title"
	  	android:layout_width="fill_parent"
	  	android:layout_height="25dp"
	  	android:textStyle="bold"
	  	android:textSize="20dp"
	  	/>
	  <TextView android:id="@+id/ml_short_content"
	  	android:layout_width="fill_parent"
	  	android:layout_height="35dp"
	  	/>
	</LinearLayout>
	<TextView
		android:layout_width="30dp"
		android:layout_height="58dp"
		android:text=">"
		android:textSize="26dp"
		android:layout_gravity="right"
		android:gravity="center"
		/>
</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐