Download image from url in android

Step 1 : create DownloadImageToSDcardActivity

Step 2 : create layout activity_download_image_to_sdcard

Step 1:

public class DownloadImageToSDcardActivity extends AppCompatActivity {

ImageView mImageView1;

Bitmap bitmap ;

String mSavedInfo;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_download_image_to_sdcard);

mImageView1 = (ImageView) findViewById(R.id.image);

}

public Bitmap getBitmapFromURL(String src) {

try {

java.net.URL url = new java.net.URL(src);

HttpURLConnection connection = (HttpURLConnection) url

.openConnection();

connection.setDoInput(true);

connection.connect();

InputStream input = connection.getInputStream();

Bitmap myBitmap = BitmapFactory.decodeStream(input);

return myBitmap;

} catch (IOException e) {

e.printStackTrace();

return null;

}

}

public void button2(View view) {

new DownloadImageFromTherad().execute();

}

private class DownloadImageFromTherad extends AsyncTask<String,Integer,String>{

@Override

protected String doInBackground(String... params) {

bitmap = getBitmapFromURL("http://starsunfolded.1ygkv60km.netdna-cdn.com/wp-content/uploads/2015/11/Avika-Gor.jpg");

return null;

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

File sdCardDirectory = Environment.getExternalStorageDirectory();

File image = new File(sdCardDirectory, "test.png");

boolean success = false;

// Encode the file as a PNG image.

FileOutputStream outStream;

// try {

// mImageView1.setImageBitmap(bitmap);

mSavedInfo = saveToInternalStorage(bitmap);

if (success) {

Toast.makeText(getApplicationContext(), "Image saved with success",

Toast.LENGTH_LONG).show();

} else {

Toast.makeText(getApplicationContext(),

"Error during image saving" + mSavedInfo, Toast.LENGTH_LONG).show();

}

}

}

private String saveToInternalStorage(Bitmap bitmapImage){

ContextWrapper cw = new ContextWrapper(getApplicationContext());

// path to /data/data/yourapp/app_data/imageDir

File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);

// Create imageDir

File mypath=new File(directory,"profile.jpg");

FileOutputStream fos = null;

try {

fos = new FileOutputStream(mypath);

// Use the compress method on the BitMap object to write image to the OutputStream

bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

fos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return directory.getAbsolutePath();

}

// useful method for retrieving image from Internal memory

private void loadImageFromStorage(String path)

{

try {

File f=new File(path, "profile.jpg");

Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));

mImageView1.setImageBitmap(b);

}

catch (FileNotFoundException e)

{

e.printStackTrace();

}

}

public void showImage(View view) {

loadImageFromStorage(mSavedInfo);

}

// source used for downloading and showing image :Brijesh Thakur :

// http://stackoverflow.com/questions/17674634/saving-and-reading-bitmaps-images-from-internal-memory-in-android

}

Step 2 :

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_download_image_to_sdcard"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="mycompany.com.recyclerviewdemo.downloadimage.DownloadImageToSDcardActivity">

<Button

android:text="download"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_alignParentLeft="true"

android:layout_alignParentStart="true"

android:layout_marginLeft="107dp"

android:layout_marginStart="107dp"

android:layout_marginTop="126dp"

android:onClick="button2"

android:id="@+id/button2" />

<ImageView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

app:srcCompat="@android:drawable/btn_star_big_on"

android:layout_below="@+id/button2"

android:layout_alignRight="@+id/button2"

android:layout_alignEnd="@+id/button2"

android:layout_marginRight="23dp"

android:layout_marginEnd="23dp"

android:layout_marginTop="105dp"

android:id="@+id/image" />

<Button

android:text="show"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="49dp"

android:id="@+id/button3"

android:onClick="showImage" />

</RelativeLayout>

output:

show downloaded image