Turkcell | Geleceği Yazanlar

Soru & Cevap

Android Json resim çekme

13.12.2014 - 09:58

Json ile veritabanından urlsini çektiğim resmi listview da imageviewa parse edebiliyorum ancak listviewda aşağı doğru indiğim zaman sanırım tekrar yüklemem yapıyor aynı resimler karışıyor doğru şekilde yüklemesi için 30 saniye filan beklemem gerekiyor her aşağı yukarı yaptığımda bunu yapıyor. Bu durumu nasıl engelleyebilirim ?

3607 Görüntülenme

2 Cevap

Ahmet Burak Demirkoparan
13.12.2014 - 23:57

Picasso veya Universal Image Loader kütüphanelerini kullanarak asenron olarak image loading yapabilirsin listview'in kasmaz ve network hızına bağlı olarak resimler pratik bir şekilde load olur.Ayrıca bu kütüphaneler kendi içlerinde cacheleme mekanizmasıda sağlar.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Mümin
14.12.2014 - 20:05
Teşekkür Ederim sorunu dediğiniz konuda netten biraz aaştırma yaparak sorunu çözdüm
Muhammed ÇOBANOĞLU
13.12.2014 - 22:59

Burada benzer bir soruyu cevaplamıştım. İnceleyebilirsin.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Mümin
14.12.2014 - 18:22
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = vi.inflate(Resource, null); holder = new ViewHolder(); holder.imageview = (ImageView) convertView.findViewById(R.id.kategori_img); holder.tv_kategori = (TextView) convertView.findViewById(R.id.tv_kategori); // soylediğiniz şekilde Gridview Eklediğim zaman uygulama hata verip kapanıyor kodlarımda bu şekilde holder.imageview.setLayoutParams(new GridView.LayoutParams(85, 85)); holder.imageview.setScaleType(ImageView.ScaleType.CENTER_CROP); holder.imageview.setPadding(8, 8, 8, 8); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } new DownloadImageTask(holder.imageview).execute("http://mgok11.byethost16.com/" + ArrayListKategoriler.get(position).getKategori_img()); holder.tv_kategori.setText(ArrayListKategoriler.get(position).getKategori()); return convertView; } static class ViewHolder { public ImageView imageview; public TextView tv_kategori; } private class DownloadImageTask extends AsyncTask<String, Void, Bitmap>{ ImageView bmImage; public DownloadImageTask(ImageView bmImage) { this.bmImage = bmImage; } protected Bitmap doInBackground(String... urls) { String urldisplay = urls[0]; Bitmap mIcon11 = null; try { InputStream in = new java.net.URL(urldisplay).openStream(); mIcon11 = BitmapFactory.decodeStream(in); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } return mIcon11; } protected void onPostExecute(Bitmap result) { bmImage.setImageBitmap(result); } }

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.