Hi all,

I have developed a very simple gallery (it started as the hello
gallery example) where I have added code to get the images from the
content provider.  It should return all images from the SD card but it
is returning no images, my gallery view is blank. I am a fairly new
developer, just working my way around the tutorials online. Here is
the code.

package com.tutorials;

import java.util.ArrayList;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.TypedArray;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Images.Media;
import android.provider.MediaStore.Images.Thumbnails;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;

public class HelloGallery extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Gallery g = (Gallery)findViewById(R.id.gallery);
        g.setAdapter(new ImageAdapter(this));

        g.setOnItemClickListener(new OnItemClickListener(){
                public void onItemClick(AdapterView parent, View v, int
position, long id){
                        Toast.makeText(HelloGallery.this,"" + position,
Toast.LENGTH_SHORT).show();
                }
        });
    }

    public class ImageAdapter extends BaseAdapter{
        int mGalleryItemBackground;
        private Context mContext;

        //get images from phone

        public ArrayList<Uri> getImageTable(){
                ArrayList<Uri> arrayList = new ArrayList<Uri>();
                try{

                ContentResolver cr = getContentResolver();

                String imageId = Media._ID;
                Toast toast =
Toast.makeText(mContext,imageId,Toast.LENGTH_LONG);
                toast.show();
                String [] images = new String[]{imageId};

                //Get Uri of ContentProvider MediaStore.Images.ImageColumns
                Uri mediaUri = Thumbnails.EXTERNAL_CONTENT_URI;

                Cursor managedCursor = managedQuery(mediaUri, images, null,
null, null);

                startManagingCursor(managedCursor);
                int columnIndex = managedCursor.getColumnIndexOrThrow(imageId);

                for(int i=0;i<managedCursor.getCount();i++){
                        managedCursor.moveToPosition(i);
                        int id = managedCursor.getInt(columnIndex);
                        arrayList.add(Uri.withAppendedPath(mediaUri, "" + 
imageId));
                }

                }catch(Exception e){
                        Toast toast =
Toast.makeText(mContext,e.toString(),Toast.LENGTH_LONG);
                        toast.show();
                }
                return arrayList;
        }



        public ImageAdapter(Context c){
                mContext = c;
                TypedArray a = obtainStyledAttributes(R.styleable.HelloGallery);
                mGalleryItemBackground = a.getResourceId(
                                
R.styleable.HelloGallery_android_galleryItemBackground, 0);
                a.recycle();
        }

                @Override
                public int getCount() {
                        // TODO Auto-generated method stub
                        return 0;
                }

                @Override
                public Object getItem(int position) {
                        // TODO Auto-generated method stub
                        return position;
                }

                @Override
                public long getItemId(int position) {
                        // TODO Auto-generated method stub
                        return position;
                }

                @Override
                public View getView(int position, View convertView, ViewGroup
parent) {
                        // TODO Auto-generated method stub
                        ImageView i = new ImageView(mContext);

                        //i.setImageResource(mImageIds[position]);
                        i.setImageURI(getImageTable().get(position));
                        i.setLayoutParams(new Gallery.LayoutParams(150, 100));
                        i.setScaleType(ImageView.ScaleType.FIT_XY);
                        i.setBackgroundResource(mGalleryItemBackground);

                        return i;
                }

    }

 }


-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to