public class MainActivity extends AppCompatActivity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button) findViewById(R.id.button);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
iv = (ImageView) findViewById(R.id.imageView);
DownImg di = new DownImg(MainActivity.this, iv);
di.execute("url");
}
});
}
}
public class DownImg extends AsyncTask<String, Integer, byte[]> {
private ImageView iv;
private int file_length;
private Context context;
protected ProgressDialog pd;
public DownImg(Context context, ImageView iv) {
this.iv = iv;
this.context = context;
}
@Override
protected byte[] doInBackground(String... params) {
ByteArrayOutputStream bos = null;
try {
URL url = new URL("http://prw.kyodonews.jp/prwfile/release/M102245/201403149047/_prw_PI1fl_2o2KuN2D.jpg");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setConnectTimeout(3000);
httpURLConnection.setReadTimeout(3000);
httpURLConnection.setDoInput(true);
httpURLConnection.setRequestMethod("GET");
httpURLConnection.connect();
file_length = httpURLConnection.getContentLength();
if (httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream is = httpURLConnection.getInputStream();
bos = new ByteArrayOutputStream();
byte[] buff = new byte[1024];
int len = 0;
while ((len = is.read(buff)) != -1) {
bos.write(buff, 0, len);
publishProgress(file_length,bos.size());
}
is.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bos.toByteArray();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pd = new ProgressDialog(context);
pd.setTitle("test");
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setCancelable(true);
pd.setMax(100);
pd.setProgress(0);
pd.show();
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
pd.setMax(values[0]);
pd.setProgress(values[1]);
}
@Override
protected void onPostExecute(byte[] bytes) {
super.onPostExecute(bytes);
Bitmap bt = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
iv.setImageBitmap(bt);
pd.dismiss();
}
}