1. XML Layout
Buat dua XML layout file di folder “res/layout/” :
res/layout/activity_main.xml
– pada halaman tersebut tambahkan ImageView
File : activity_main.xml
<ImageView
android:id="@+id/imageView"
android:layout_width="60dp"
android:layout_height="60dp"
android:gravity="center"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:scaleType="fitXY"/>
2. Activity
Pada activity class daftarkan ImageView yang dibuat.
File : MainActivity.java
ImageView imageView; String url = "https://www.google.co.id/images/srpr/logo11w.png" public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.imageView); }
3. Download File
Dowload file dari alamat url tersebut kemudian menyimpannya ke dalam memori internal
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView pImage;
FileOutputStream ontput;
String Path = "sdcard0/Download/";
protected Bitmap doInBackground(String... p_urls) {
String urldisplay = p_urls[0];
Bitmap p_image = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
p_image = BitmapFactory.decodeStream(in);
ontput = new FileOutputStream(Path + ImageFileName(urldisplay));
p_image.compress(Bitmap.CompressFormat.PNG, 90, ontput);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
} finally {
try {
ontput.close();
} catch (Exception e2) {
Log.e("Error", e2.getMessage());
e2.printStackTrace();
}
}
return null;
}
}
private String ImageFileName(String p_url) {
String ext = p_url.substring(p_url.lastIndexOf("/") );
if (ext.indexOf("?")>-1) {
ext = ext.substring(0,ext.indexOf("?"));
}
if (ext.indexOf("%")>-1) {
ext = ext.substring(0,ext.indexOf("%"));
}
return ext;
}
Kemudian buat falidasi untuk mengecek apakah file sudah ada di memori atau belum.
String path = "sdcard0/Download/"+ ImageFileName(catalog.image_url);
Bitmap bitmap = BitmapFactory.decodeFile(path);
File filePath = new File(path);
if (!filePath.exists()) {
new DownloadImageTask().execute(catalog.image_url);
imageView.setImageBitmap(bitmap);
}else{
imageView.setImageBitmap(bitmap);
}
S.M.H