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 ?

40 Görüntülenme

2 Cevap

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

picture-1372-1408467635.jpg
ahmtbrk
13.12.2014 - 11: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.

Mümin
14.12.2014 - 08:05
Teşekkür Ederim sorunu dediğiniz konuda netten biraz aaştırma yaparak sorunu çözdüm
picture-31404-1421919825.png
muhcob
13.12.2014 - 10:59

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

Mümin
14.12.2014 - 06: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{ 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); } }