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: