Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.e.asynctask;
- import android.Manifest;
- import android.app.ProgressDialog;
- import android.content.pm.PackageManager;
- import android.graphics.drawable.Drawable;
- import android.os.AsyncTask;
- import android.os.Build;
- import android.os.Environment;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.Toast;
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.security.Permission;
- import javax.net.ssl.HttpsURLConnection;
- public class MainActivity extends AppCompatActivity {
- int REQUEST_WRITE_EXTERNAL_STORAGE = 1;
- ImageView image;
- final String url = "http://www.thebigideatoolkit.com/wp-content/uploads/2011/07/Big-Picture-example.jpg";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- image = findViewById(R.id.image_iv);
- Button download = findViewById(R.id.download_btn);
- download.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(Build.VERSION.SDK_INT >=23){
- int ifperrmission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
- if(ifperrmission != PackageManager.PERMISSION_GRANTED) {
- requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_WRITE_EXTERNAL_STORAGE);
- }
- else
- {
- new DownloadImage().execute(url);
- }
- }
- }
- });
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if(requestCode == REQUEST_WRITE_EXTERNAL_STORAGE){
- if(grantResults[0] != PackageManager.PERMISSION_GRANTED){
- Toast.makeText(this, "Need permission", Toast.LENGTH_SHORT).show();
- }
- else{
- new DownloadImage().execute(url);
- }
- }
- }
- private class DownloadImage extends AsyncTask<String,Integer,String>{
- ProgressDialog progressdialog;
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- image.setImageBitmap(null);
- progressdialog = new ProgressDialog(MainActivity.this);
- progressdialog.setTitle("Please wait");
- progressdialog.setMessage("Downloading image");
- progressdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- progressdialog.show();
- }
- @Override
- protected void onPostExecute(String s) {
- super.onPostExecute(s);
- image.setImageDrawable(Drawable.createFromPath(s));
- progressdialog.dismiss();
- }
- @Override
- protected void onProgressUpdate(Integer... values) {
- super.onProgressUpdate(values);
- progressdialog.setProgress(values[0]);
- }
- @Override
- protected String doInBackground(String... strings) {
- String outputfilepath = null;
- try {
- URL url = new URL(strings[0]);
- HttpURLConnection httpurlconnection = (HttpURLConnection)url.openConnection();
- httpurlconnection.connect();
- long lens_of_file = httpurlconnection.getContentLength();
- BufferedInputStream bis = new BufferedInputStream(httpurlconnection.getInputStream());
- outputfilepath = Environment.getExternalStorageDirectory().toString() + "/piccc.jpg";
- BufferedOutputStream fos =new BufferedOutputStream(new FileOutputStream(outputfilepath));
- final int BUFFER_SIZE = 4096;
- byte[] buffer = new byte[BUFFER_SIZE];
- int current;
- int total = 0;
- while ((current = bis.read(buffer)) != -1) {
- total += current;
- publishProgress((int) (total*100/lens_of_file));
- fos.write(buffer,0,current);
- }
- bis.close();
- fos.close();
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return outputfilepath;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement