Posted by : Unknown Minggu, 17 Juni 2018

AndroidManifest.xml

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

MainActivity.java

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.*;

public class MainActivity extends Activity {

Button button;
ProgressDialog progressdialog;
public static final int Progress_Dialog_Progress = 0;
String ImageURL = "https://www.android-examples.com/wp-content/uploads/2016/04/demo_download_image.jpg" ;
URL url;
URLConnection urlconnection ;
int FileSize;
InputStream inputstream;
OutputStream outputstream;
byte dataArray[] = new byte[1024];
long totalSize = 0;
ImageView imageview;
String GetPath ;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

button = (Button)findViewById(R.id.button);
imageview = (ImageView)findViewById(R.id.image);

button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

new ImageDownloadWithProgressDialog().execute(ImageURL);

}
});
}

public class ImageDownloadWithProgressDialog extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {

super.onPreExecute();

showDialog(Progress_Dialog_Progress);
}

@Override
protected String doInBackground(String... aurl) {

int count;

try {

url = new URL(aurl[0]);
urlconnection = url.openConnection();
urlconnection.connect();

FileSize = urlconnection.getContentLength();

inputstream = new BufferedInputStream(url.openStream());
outputstream = new FileOutputStream("/sdcard/demo_photo1.jpg");

while ((count = inputstream.read(dataArray)) != -1) {

totalSize += count;

publishProgress(""+(int)((totalSize*100)/FileSize));

outputstream.write(dataArray, 0, count);
}

outputstream.flush();
outputstream.close();
inputstream.close();

} catch (Exception e) {}
return null;

}
protected void onProgressUpdate(String... progress) {

progressdialog.setProgress(Integer.parseInt(progress[0]));
}

@Override
protected void onPostExecute(String unused) {

dismissDialog(Progress_Dialog_Progress);

GetPath = Environment.getExternalStorageDirectory().toString() + "/demo_photo1.jpg";

imageview.setImageDrawable(Drawable.createFromPath(GetPath));

Toast.makeText(MainActivity.this, "Image Downloaded Successfully", Toast.LENGTH_LONG).show();
}
}

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case Progress_Dialog_Progress:

progressdialog = new ProgressDialog(MainActivity.this);
progressdialog.setMessage("Downloading Image From Server...");
progressdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressdialog.setCancelable(false);
progressdialog.show();
return progressdialog;

default:

return null;
}
}

}

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © BLOG GUE WANGI - Blogger Templates - Powered by Blogger - Designed by Johanes Djogan -