Android – Sunucudan Resim ve Dosya Nasıl İndirilir ?

Yazar: | 28 Haziran 2017

Android uygulamalarınızda internet üzerinden resim indirip cihazın sd card’ında depolamak isteyebilirsiniz. Bunun için resim linkini aşağıdaki gibi yazarak cihaza indirme işlemini yapabilirsiniz. Öncelikle Manifest dosyanıza aşağıdaki izinleri ekleyin:

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.INTERNET” />


try {
  //resim indiriliyor
  URL url = new URL("http://www.sahatek.com/sahatek.jpg");
  Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
  //sdcarda kaydedileceğini belirtiyoruz.
  File f = new File(context.getExternalCacheDir(), "Sahatek");
  //Eğer dosya yoksa oluştur
  if (!f.exists()) {
    f.mkdirs();
  }
  File sdCardDirectory = context.getExternalCacheDir();
  File image = new File(sdCardDirectory, "Sahatek/sahatek.jpg");
  // Png resim olduğunu belirtiyoruz
  FileOutputStream outStream;
  outStream = new FileOutputStream(image);
  bmp.compress(Bitmap.CompressFormat.PNG, 90, outStream);
  outStream.flush();
  outStream.close();

} catch (Exception e) {
e.printStackTrace();
}

Yukarıdaki kodları AsyncTask veya bir thread yapısı içerisinde kullanmanız gerekmektedir. Böylece resimler indirilirken uygulamanız donmamış olacak ve kullanıcıya “İndirilen Resim: 10/3” gibi bir yükleniyor penceresi sunmuş olacaksınız.

Şimdi indirdiğimiz bu resmi ImageView içerisinde gösterelim

Bu işlem için manifest dosyanıza aşağıdaki izni ekleyin:
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE” />

  File sdCardDirectory = getActivity().getExternalCacheDir();
  File imgFile = new File(sdCardDirectory, "Sahatek/sahatek.jpg");
  if (imgFile.exists()) {
    final Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
    imageView.setImageBitmap(myBitmap);
  }

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir