-6

I want to use a Button in my app to enable users to click and store multiple pictures.
Once clicked, the picture is saved into a folder inside the phone Gallery.

How can I store multiple images and specify a path in the Gallery?

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115

1 Answers1

0

you can use following code if you are fecthing images with url from web-

class DownloadFile extends AsyncTask<String,Integer,Long> {
ProgressDialog mProgressDialog = new ProgressDialog(MainActivity.this);// Change Mainactivity.this with your activity name. 
String strFolderName;
@Override
protected void onPreExecute() {
    super.onPreExecute();
    mProgressDialog.setMessage("Downloading");
    mProgressDialog.setIndeterminate(false);
    mProgressDialog.setMax(100);
    mProgressDialog.setCancelable(true);
    mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    mProgressDialog.show();
}
@Override
protected Long doInBackground(String... aurl) {
    int count;
    try {
        URL url = new URL((String) aurl[0]);
        URLConnection conexion = url.openConnection();
        conexion.connect();
        String targetFileName="Name"+".rar";//Change name and subname
        int lenghtOfFile = conexion.getContentLength();
        String PATH = Environment.getExternalStorageDirectory()+ "/"+downloadFolder+"/";
        File folder = new File(PATH);
        if(!folder.exists()){
            folder.mkdir();//If there is no folder it will be created.
        }
        InputStream input = new BufferedInputStream(url.openStream());
        OutputStream output = new FileOutputStream(PATH+targetFileName);
        byte data[] = new byte[1024];
        long total = 0;
        while ((count = input.read(data)) != -1) {
            total += count;
                   publishProgress ((int)(total*100/lenghtOfFile));
            output.write(data, 0, count);
        }
        output.flush();
        output.close();
        input.close();
    } catch (Exception e) {}
    return null;
}
protected void onProgressUpdate(Integer... progress) {
     mProgressDialog.setProgress(progress[0]);
     if(mProgressDialog.getProgress()==mProgressDialog.getMax()){
        mProgressDialog.dismiss();
        Toast.makeText(fa, "File Downloaded", Toast.LENGTH_SHORT).show();
     }
}
protected void onPostExecute(String result) {
}

}

now in your manifest add the following permissions-

     <uses-permission android:name="android.permission.INTERNET"> </uses- permission>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
 <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

for Reference follow this link

Community
  • 1
  • 1
sud
  • 505
  • 1
  • 4
  • 12