Lägg även upp din layout och andra filer som saknas eller varför inte packa ihop hela projektet och lägga upp det på dropbox eller annat ställe så vi kan köra koden och faktiskt se vad som verkligen händer.
Har du följt några exempel? Lägg i så fall upp länkar till dem.
Här hittade jag ett exempel på just vad du försöker göra:
http://android-er.blogspot.se/2012/11/list-mediastoreimagesthumbnails-in.html
Tips! Använd CODE-taggarna.
Korrekt formaterad kod så den blir läslig:
Code:
import android.R;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class MainActivity extends Activity {
Cursor cursor;
int indexColumn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Array for the columns to access
String[] projection = { MediaStore.Images.Thumbnails._ID };
// Cursor object
cursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Thumbnails.IMAGE_ID);
// Number of columns
indexColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
GridView imagesSD = (GridView) findViewById(R.id.gridview);
imagesSD.setAdapter(new ImageAdapter(this));
/*
* gridview.setOnItemClickListener(new OnItemClickListener() { public
* void onItemClick(AdapterView parent, View v, int position, long id) {
* Toast.makeText(MainActivity.this, "" + position,
* Toast.LENGTH_SHORT).show(); } });
*/
imagesSD.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position2, long id) {
String[] projection = { MediaStore.Images.Media.DATA };
cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
indexColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToPosition(position2);
String imagePath = cursor.getString(indexColumn);
// Sending image id to FullScreenActivity
Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
// passing array index
i.putExtra("image", imagePath);
// Toast.makeText(MainActivity.this, "" + imagePath,
// Toast.LENGTH_SHORT).show();
startActivity(i);
}
});
}
// Nested class
public class ImageAdapter extends BaseAdapter {
private Context context;
// Constructor
public ImageAdapter(Context c) {
context = c;
}
public int getCount() {
return cursor.getCount();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some
// attributes
imageView = new ImageView(context);
// Move cursor to current position
cursor.moveToPosition(position);
// Get the current value value for the requested column
int imageId = cursor.getInt(indexColumn);
// Set content of the image
imageView.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, "" + imageId));
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setPadding(8, 8, 8, 8);
imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
} else {
imageView = (ImageView) convertView;
}
return imageView;
}
}
}