download image from URL to sd card in android
Here, I have added coding for download image from url and store in sdcard in android.For that you need two permission
1) Internet permission
2)Write External storage
*) And you have to you async task to download image.
Then Store your url in String;
like String url="yourImageURL";
DownloadImage.Java
public class webview extends Activity { String image_URL=Dec.img_url; String extStorageDirectory; String sdCard; Bitmap bitmap; File file; String savedFilePath; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button buttonSave = (Button)findViewById(R.id.save); ImageView bmImage = (ImageView)findViewById(R.id.image); buttonSave.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub myAsyncTask myWebFetch = new myAsyncTask(); myWebFetch.execute(); } }); } class myAsyncTask extends AsyncTask<Void, Void, Void> { TextView tv; public ProgressDialog dialog; myAsyncTask() { dialog = new ProgressDialog(webview.this); dialog.setMessage("Loading news..."); dialog.setCancelable(true); dialog.setIndeterminate(true); } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); dialog.dismiss(); } @Override protected void onPreExecute() { super.onPreExecute(); dialog.show(); } protected Void doInBackground(Void... arg0) { try { //set the download URL, a url that points to a file on the internet //this is the file to be downloaded URL url = new URL(url); //create the new connection HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); //set up some things on the connection urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(true); //and connect! urlConnection.connect(); //set the path where we want to save the file //in this case, going to save it on the root directory of the //sd card. File SDCardRoot = Environment.getExternalStorageDirectory(); //create a new file, specifying the path, and the filename //which we want to save the file as. File file = new File(SDCardRoot,"somefile.jpg"); //this will be used to write the downloaded data into the file we created FileOutputStream fileOutput = new FileOutputStream(file); //this will be used in reading the data from the internet InputStream inputStream = urlConnection.getInputStream(); //this is the total size of the file int totalSize = urlConnection.getContentLength(); //variable to store total downloaded bytes int downloadedSize = 0; //create a buffer... byte[] buffer = new byte[1024]; int bufferLength = 0; //used to store a temporary size of the buffer //now, read through the input buffer and write the contents to the file while ( (bufferLength = inputStream.read(buffer)) > 0 ) { //add the data in the buffer to the file in the file output stream (the file on the sd card fileOutput.write(buffer, 0, bufferLength); //add up the size so we know how much is downloaded downloadedSize += bufferLength; //this is where you would do something to report the prgress, like this maybe //updateProgress(downloadedSize, totalSize); } //close the output stream when done fileOutput.close(); //catch some possible errors... } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // see http://androidsnippets.com/download-an-http-file-to-sdcard-with-progress-notification return null; } } } |
1 comment:
Is your image downloading with this code?
Post a Comment