Displaying images from specific folder in sd card in grid view

≡放荡痞女 提交于 2019-11-30 23:44:26

Sorry for Answering late... Below I am posting the final solution

public class Album3 extends Activity {
File [] mediaFiles;
File imageDir;
static GridView gridView;
ImageAdapter adapter;
Intent in;
ImageButton btncam;
String name = null;
ArrayList<Bitmap> bmpArray = new ArrayList<Bitmap>();
ArrayList<String> fileName = new ArrayList<String>();
public static final String TAG = "Album3Activity";

public void onCreate(Bundle savedInstanceState) 
{
    imageDir = new File(Environment.getExternalStorageDirectory().toString()+
             "/diplomat");
    super.onCreate(savedInstanceState);
    if((imageDir.exists()))
    {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.grid);
        mediaFiles = imageDir.listFiles();
        //Log.d("Length of images",""+mediaFiles.length);
        for(File file : mediaFiles)
        {
            bmpArray.add(convertToBitmap(file));
            fileName.add(readFileName(file));
            //Log.d(TAG + "bmpArray Size", ""+bmpArray.size());
            //Log.d(TAG, "call to convertToBitmap");
        }//for

        adapter = new ImageAdapter(this, bmpArray, fileName);
        gridView = (GridView)findViewById(R.id.gridview);
        gridView.setAdapter(adapter);
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED
                , Uri.parse(Environment.getExternalStorageDirectory().toString()+"/diplomat")));

        gridView.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {
            in = new Intent(getApplicationContext(), FullScreen.class);
            in.putExtra("id", position);
            startActivity(in);
        }
    });
    }//if
    else
    {
        setContentView(R.layout.no_media);
    }
}//onCreate

public static Bitmap convertToBitmap(File file) 
{
    URL url = null;
    try 
    {
        url = file.toURL();
    } catch (MalformedURLException e1) 
    {
        //Log.d(TAG, e1.toString());
    }//catch

    Bitmap bmp = null;
    try
    {
       bmp = BitmapFactory.decodeStream(url.openStream());
       //bmp.recycle();
    }catch(Exception e)
    {
        //Log.d(TAG, "Exception: "+e.toString());
    }//catch
    return bmp;
}//convertToBitmap

public String readFileName(File file){
    String name = file.getName();
    return name;
}//readFileName
}//class

You can use

Uri.parse("path to sdcard folder")

method

Your linked answer already has the answer. Use the selection argument correctly.

cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
    projection, 
    MediaStore.Images.Media.DATA + " like ? ",
    **new String[] {"%myimagesfolder%"},**  
    null);

In the above code ur fetching all the images from gallery try this one

File sdImageMainDirectory ;
String imageName ;
File root = new File(Environment.getExternalStorageDirectory()
                + File.separator + "MYPICS" + File.separator);
        if (!root.exists()) {
            root.mkdirs();
        }

ImageView camera = (ImageButton) findViewById(R.id.imageButton1);

cam.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                imageName = "MyPic.png";
                sdImageMainDirectory = new File(root, imageName);
                i++;
                Uri imgUri = Uri.fromFile(sdImageMainDirectory);

                Intent intent = new Intent(
                        android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, imgUri);
                startActivityForResult(intent, 0);

                // startCameraActivity();
            }
        });

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (resultCode) {
        case 0:
             finish();
            break;

        case -1:
            files = root.listFiles();
            count = files.length;
            try {

                ImageView image = new ImageView(this);

                LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(
                        200, 200);
                image.setLayoutParams(vp);
                image.setScaleType(ImageView.ScaleType.CENTER_CROP);
                image.setPadding(8, 8, 8, 8);
                image.setMaxHeight(50);
                image.setMaxWidth(50);
                image.setAdjustViewBounds(true);
                BitmapFactory.Options option = new BitmapFactory.Options();
                option.inSampleSize = 2;
                Bitmap bm = BitmapFactory.decodeFile(root.getPath() + "/"
                        + imageName,option);
                image.setImageBitmap(bm);
                linearImageView.addView(image);


            } catch (Exception e) {
                e.printStackTrace();
            }



        }

    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!