Dies ist ein zweiteiliger Bitte um Hilfe. Ich erstelle eine Galerie von Bildern, die ich aus einem bestimmten Ordner auf der SD-Karte ziehen werde. Ich habe eine Galerie Klasse erstellt:Galerie nicht scrollen
import android.app.Activity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
/**
* @author elidd1
*
*/
public class GalleryView extends Activity{
ImageView imageView;
;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery);
// Set up an array of the Thumbnail Image ID column we want
String[] projection = {MediaStore.Images.Thumbnails._ID};
// Create the cursor pointing to the SDCard
cursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection, // Which columns to return
null, // Return all rows
null,
MediaStore.Images.Thumbnails.IMAGE_ID);
// Get the column index of the Thumbnails Image ID
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
Gallery ga = (Gallery)findViewById(R.id.Gallery01);
ga.setAdapter(new GallImageAdapter(this,cursor,columnIndex));
imageView = (ImageView)findViewById(R.id.ImageView01);
}
}
und ein eigenes Bild Adapter genannt GallImageAdapter:
import android.content.Context;
import android.content.res.TypedArray;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class GallImageAdapter extends BaseAdapter {
public Cursor cursor;
private int columnIndex;
private Context context;
int imageBackground;
public GallImageAdapter(Context ctx, Cursor cur, int cIn) {
context = ctx;
columnIndex = cIn;
cursor = cur;
}
@Override
public int getCount() {
return cursor.getCount();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView picturesView;
if(convertView == null){
picturesView = new ImageView(context);
// move cursor to current position
cursor.moveToPosition(position);
int imageID = cursor.getInt(columnIndex);
picturesView.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,""+imageID));
picturesView.setScaleType(ImageView.ScaleType.FIT_CENTER);
picturesView.setPadding(10,10,10,10);
}else{
picturesView = (ImageView)convertView;
}
return picturesView;
}
}
erste Problem ist, dass die getCount Methode eine Null-Zeiger-Ausnahme zurückgibt: es mir erlaubt, nicht zu scrollen Sie durch die Bilder ..
Der zweite Teil meiner Frage ist, wie zeige ich auf einen bestimmten Ordner .. "/ LC/images /" Ich gehe davon aus, dass es in meinem Bildadapter in dieser Zeile passieren würde:
picturesView.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,""+imageID));
Dank für jede Hilfe
im geben sorry, ich erkannte, dass ich es zu starten vergessen in meinem gallery view und übergebe es an den adapter, sobald ich es gepostet habe .. im editieren des posts oben .. will immer noch wissen wie man einen bestimmten ordner an den adapter weiterleitet .. – erik
Versuch Uri.parse ('file://dein Weg') –