package com.example.gridview;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
//import android.provider.MediaStore.Images.Media;
import android.provider.MediaStore.Images.Thumbnails;
import android.util.Log;
import android.view.Menu;
//import android.view.View;
//import android.widget.AdapterView;
//import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
//import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
//import android.widget.Toast;
public class MainActivity extends Activity {
private GridView grid;
private ContentResolver cr;
private List<HashMap<String, String>> list;
private Cursor cur;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
grid = (GridView) findViewById(R.id.gridview);
// ImageView image=(ImageView) findViewById(R.id.im);
cr = getContentResolver();
//要查询的列表id
String[] s = { Thumbnails._ID, Thumbnails.IMAGE_ID, Thumbnails.DATA };
cur = cr.query(Thumbnails.EXTERNAL_CONTENT_URI, s, null, null, null);
getColumnData(cur);
String[] from = { "path"};
int[] to = { R.id.im};
ListAdapter sim = new picview(this, list, R.layout.cell, from, to);
grid.setAdapter(sim);
// grid.setOnItemClickListener(new clicklistener());
}
/*
* class clicklistener implements OnItemClickListener {
*
* @Override public void onItemClick(AdapterView<?> arg0, View arg1, int
* position, long arg3) { // TODO Auto-generated method stub cr =
* getContentResolver(); String image_id =
* list.get(position).get("image_id"); String[] projection = { Media._ID,
* Media.DATA }; Cursor cursor = cr.query(Media.EXTERNAL_CONTENT_URI,
* projection, Media._ID + "=" + image_id, null, null); if (cursor != null)
* { cursor.moveToFirst(); String path = cursor.getString(cursor
* .getColumnIndex(Media.DATA)); Log.i("tup", path); } // else { //
* Toast.makeText(this, "Image doesn't exist!", Toast.LENGTH_SHORT) //
* .show(); // }
*
* }
*
* }
*/
public void getColumnData(Cursor cur) {
if (cur.moveToFirst()) {
int _id;
int image_id;
String image_path;
int _idColumn = cur.getColumnIndex(Thumbnails._ID);
int image_idColumn = cur.getColumnIndex(Thumbnails.IMAGE_ID);
int dataColumn = cur.getColumnIndex(Thumbnails.DATA);
Log.i("s", String.valueOf(_idColumn));
do {
// Get the field values
_id = cur.getInt(_idColumn);
image_id = cur.getInt(image_idColumn);
image_path = cur.getString(dataColumn);
// Do something with the values.
Log.i("get", _id + " image_id:" + image_id + " path:"+ image_path + "---");
list=new ArrayList<HashMap<String, String>>();
//通过键值对的方式把查询得到的值存入hash表中
HashMap<String, String> hash = new HashMap<String, String>();
hash.put("image_id", image_id + "");
hash.put("path", image_path);
list.add(hash);
} while (cur.moveToNext());
}
}
class picview extends SimpleAdapter {
public picview(Context context, List<? extends Map<String, ?>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
}
public void setViewImage(ImageView v, String value) {
try {
FileInputStream fis = new FileInputStream(value);
BufferedInputStream bis = new BufferedInputStream(fis);
Bitmap bitmap = BitmapFactory.decodeStream(bis);
Bitmap newBit = Bitmap.createScaledBitmap(bitmap, 180, 180,
false);
v.setImageBitmap(newBit);
Log.i("tag", v+"");
bis.close();
fis.close();
} catch (Exception e) {
Log.e("s1", e.toString());
v.setImageURI(Uri.parse(value));
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}为什么会无法启动呢
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
//import android.provider.MediaStore.Images.Media;
import android.provider.MediaStore.Images.Thumbnails;
import android.util.Log;
import android.view.Menu;
//import android.view.View;
//import android.widget.AdapterView;
//import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
//import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
//import android.widget.Toast;
public class MainActivity extends Activity {
private GridView grid;
private ContentResolver cr;
private List<HashMap<String, String>> list;
private Cursor cur;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
grid = (GridView) findViewById(R.id.gridview);
// ImageView image=(ImageView) findViewById(R.id.im);
cr = getContentResolver();
//要查询的列表id
String[] s = { Thumbnails._ID, Thumbnails.IMAGE_ID, Thumbnails.DATA };
cur = cr.query(Thumbnails.EXTERNAL_CONTENT_URI, s, null, null, null);
getColumnData(cur);
String[] from = { "path"};
int[] to = { R.id.im};
ListAdapter sim = new picview(this, list, R.layout.cell, from, to);
grid.setAdapter(sim);
// grid.setOnItemClickListener(new clicklistener());
}
/*
* class clicklistener implements OnItemClickListener {
*
* @Override public void onItemClick(AdapterView<?> arg0, View arg1, int
* position, long arg3) { // TODO Auto-generated method stub cr =
* getContentResolver(); String image_id =
* list.get(position).get("image_id"); String[] projection = { Media._ID,
* Media.DATA }; Cursor cursor = cr.query(Media.EXTERNAL_CONTENT_URI,
* projection, Media._ID + "=" + image_id, null, null); if (cursor != null)
* { cursor.moveToFirst(); String path = cursor.getString(cursor
* .getColumnIndex(Media.DATA)); Log.i("tup", path); } // else { //
* Toast.makeText(this, "Image doesn't exist!", Toast.LENGTH_SHORT) //
* .show(); // }
*
* }
*
* }
*/
public void getColumnData(Cursor cur) {
if (cur.moveToFirst()) {
int _id;
int image_id;
String image_path;
int _idColumn = cur.getColumnIndex(Thumbnails._ID);
int image_idColumn = cur.getColumnIndex(Thumbnails.IMAGE_ID);
int dataColumn = cur.getColumnIndex(Thumbnails.DATA);
Log.i("s", String.valueOf(_idColumn));
do {
// Get the field values
_id = cur.getInt(_idColumn);
image_id = cur.getInt(image_idColumn);
image_path = cur.getString(dataColumn);
// Do something with the values.
Log.i("get", _id + " image_id:" + image_id + " path:"+ image_path + "---");
list=new ArrayList<HashMap<String, String>>();
//通过键值对的方式把查询得到的值存入hash表中
HashMap<String, String> hash = new HashMap<String, String>();
hash.put("image_id", image_id + "");
hash.put("path", image_path);
list.add(hash);
} while (cur.moveToNext());
}
}
class picview extends SimpleAdapter {
public picview(Context context, List<? extends Map<String, ?>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
}
public void setViewImage(ImageView v, String value) {
try {
FileInputStream fis = new FileInputStream(value);
BufferedInputStream bis = new BufferedInputStream(fis);
Bitmap bitmap = BitmapFactory.decodeStream(bis);
Bitmap newBit = Bitmap.createScaledBitmap(bitmap, 180, 180,
false);
v.setImageBitmap(newBit);
Log.i("tag", v+"");
bis.close();
fis.close();
} catch (Exception e) {
Log.e("s1", e.toString());
v.setImageURI(Uri.parse(value));
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}为什么会无法启动呢