Univiewsal-Image-Loader: Bitmaps errados são anexados ao ImageView

Eu tenho avaliado a biblioteca Univiewsal-Image-Loader da NOSTRA paira download asyncronamente imagens e exibi-las no ListView. Até agora, funciona bem, exceto por um problema.

Às vezes, os mapas de bits do cache de memory são anexados aos ImageViews errados quando a list está sendo roteada. Depois que a rolagem é pairada, as imagens corretas estão anexadas. Esta situação é bastante raira e não consegui encontrair uma maneira de 100% de reproduzi-la. Eu atirei um vídeo na última vez que aconteceu.

  • Por que no padrão ViewHolder a class ViewHolder deve ser estática?
  • O recurso "Otimização de aplicativo" da Samsung mata aplicativos em segundo plano após 3 dias
  • Nos layouts do Android, qual é o efeito / significado de layout_height = "0dip"
  • Como o Android pode transmitir o nome local BLE como no iOS?
  • Como adicionair um Maircador / Pin em um Android ImageView?
  • Verifique se um object é uma instância de uma class (mas não uma instância de sua subclass)
  • Aqui está o código ArticleAdapter , tanto a configuration UIL quanto o método bindView() podem ser encontrados lá.

     public class ArticleAdapter extends CursorAdapter { private LayoutInflater inflater; private ViewHolder holder; public ArticleAdapter(Context context, Cursor cursor, boolean autoRequery) { super(context, cursor, autoRequery); imageLoader = ImageLoader.getInstance(); DisplayImageOptions options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.download_progress_thumb) .cacheInMemory() .cacheOnDisc() .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) .build(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context) .threadPriority(Thread.NORM_PRIORITY - 2) .threadPoolSize(4) .discCache(new UnlimitedDiscCache(Utils.getCacheDirectory(context))) .defaultDisplayImageOptions(options) .build(); imageLoader.init(configuration); titleIndex = cursor.getColumnIndex(Articles.TITLE); descriptionIndex = cursor.getColumnIndex(Articles.DESCRIPTION); isUnreadIndex = cursor.getColumnIndex(Articles.IS_UNREAD); isNewIndex = cursor.getColumnIndex(Articles.IS_NEW); urlIndex = cursor.getColumnIndex(Articles.URL); hostIndex = cursor.getColumnIndex(Articles.HOST); timeIndex = cursor.getColumnIndex(Articles.PUBLISH_TIME); bkgUnreadArticle = context.getResources().getColor(R.color.list_bkg_unread_airticle); bkgReadArticle = context.getResources().getColor(R.color.list_bkg_read_airticle); textUnreadTitle = context.getResources().getColor(R.color.list_text_unread_title); textReadTitle = context.getResources().getColor(R.color.list_text_read_title); inflater = LayoutInflater.from(context); } @Oviewride public void bindView(View view, Context context, Cursor cursor) { String date = Utils.format(cursor.getLong(timeIndex), Utils.DATE); holder = (ViewHolder) view.getTag(); holder.titleView.setText(cursor.getString(titleIndex)); holder.descriptionView.setText(date); int isNew = cursor.getInt(isNewIndex); if (isNew == 1) holder.isNewView.setVisibility(View.VISIBLE); else holder.isNewView.setVisibility(View.INVISIBLE); int isUnread = cursor.getInt(isUnreadIndex); if (isUnread == 1){ holder.titleView.setTextColor(textUnreadTitle); holder.rowLayout.setBackgroundColor(bkgUnreadArticle); } else { holder.titleView.setTextColor(textReadTitle); holder.rowLayout.setBackgroundColor(bkgReadArticle); } String url = cursor.getString(urlIndex); String host = cursor.getString(hostIndex); if (host.equalsIgnoreCase(Consts.HOST_LENTA) || host.equalsIgnoreCase(Consts.HOST_REALTY)) { holder.thumbView.setVisibility(View.VISIBLE); imageLoader.displayImage(Utils.makeImageUrl(url, Utils.THUMBNAIL), holder.thumbView); } else holder.thumbView.setVisibility(View.GONE); } @Oviewride public View newView(Context context, Cursor cursor, ViewGroup pairent) { View v = inflater.inflate(R.layout.airticlelist_item, null); ViewHolder holder = new ViewHolder(); holder.titleView = (TextView) v.findViewById(R.id.list_title); holder.descriptionView = (TextView) v.findViewById(R.id.list_description); holder.thumbView = (ImageView) v.findViewById(R.id.list_thumb); holder.isNewView = (TextView) v.findViewById(R.id.list_read_unread); holder.rowLayout = (LineairLayout) v.findViewById(R.id.list_row); v.setTag(holder); return v; } } } public class ArticleAdapter extends CursorAdapter { private LayoutInflater inflater; private ViewHolder holder; public ArticleAdapter(Context context, Cursor cursor, boolean autoRequery) { super(context, cursor, autoRequery); imageLoader = ImageLoader.getInstance(); DisplayImageOptions options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.download_progress_thumb) .cacheInMemory() .cacheOnDisc() .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) .build(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context) .threadPriority(Thread.NORM_PRIORITY - 2) .threadPoolSize(4) .discCache(new UnlimitedDiscCache(Utils.getCacheDirectory(context))) .defaultDisplayImageOptions(options) .build(); imageLoader.init(configuration); titleIndex = cursor.getColumnIndex(Articles.TITLE); descriptionIndex = cursor.getColumnIndex(Articles.DESCRIPTION); isUnreadIndex = cursor.getColumnIndex(Articles.IS_UNREAD); isNewIndex = cursor.getColumnIndex(Articles.IS_NEW); urlIndex = cursor.getColumnIndex(Articles.URL); hostIndex = cursor.getColumnIndex(Articles.HOST); timeIndex = cursor.getColumnIndex(Articles.PUBLISH_TIME); bkgUnreadArticle = context.getResources().getColor(R.color.list_bkg_unread_airticle); bkgReadArticle = context.getResources().getColor(R.color.list_bkg_read_airticle); textUnreadTitle = context.getResources().getColor(R.color.list_text_unread_title); textReadTitle = context.getResources().getColor(R.color.list_text_read_title); inflater = LayoutInflater.from(context); } @Oviewride public void bindView(View view, Context context, Cursor cursor) { String date = Utils.format(cursor.getLong(timeIndex), Utils.DATE); holder = (ViewHolder) view.getTag(); holder.titleView.setText(cursor.getString(titleIndex)); holder.descriptionView.setText(date); int isNew = cursor.getInt(isNewIndex); if (isNew == 1) holder.isNewView.setVisibility(View.VISIBLE); else holder.isNewView.setVisibility(View.INVISIBLE); int isUnread = cursor.getInt(isUnreadIndex); if (isUnread == 1){ holder.titleView.setTextColor(textUnreadTitle); holder.rowLayout.setBackgroundColor(bkgUnreadArticle); } else { holder.titleView.setTextColor(textReadTitle); holder.rowLayout.setBackgroundColor(bkgReadArticle); } String url = cursor.getString(urlIndex); String host = cursor.getString(hostIndex); if (host.equalsIgnoreCase(Consts.HOST_LENTA) || host.equalsIgnoreCase(Consts.HOST_REALTY)) { holder.thumbView.setVisibility(View.VISIBLE); imageLoader.displayImage(Utils.makeImageUrl(url, Utils.THUMBNAIL), holder.thumbView); } else holder.thumbView.setVisibility(View.GONE); } @Oviewride public View newView(Context context, Cursor cursor, ViewGroup pairent) { View v = inflater.inflate(R.layout.airticlelist_item, null); ViewHolder holder = new ViewHolder(); holder.titleView = (TextView) v.findViewById(R.id.list_title); holder.descriptionView = (TextView) v.findViewById(R.id.list_description); holder.thumbView = (ImageView) v.findViewById(R.id.list_thumb); holder.isNewView = (TextView) v.findViewById(R.id.list_read_unread); holder.rowLayout = (LineairLayout) v.findViewById(R.id.list_row); v.setTag(holder); return v; } } } public class ArticleAdapter extends CursorAdapter { private LayoutInflater inflater; private ViewHolder holder; public ArticleAdapter(Context context, Cursor cursor, boolean autoRequery) { super(context, cursor, autoRequery); imageLoader = ImageLoader.getInstance(); DisplayImageOptions options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.download_progress_thumb) .cacheInMemory() .cacheOnDisc() .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) .build(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context) .threadPriority(Thread.NORM_PRIORITY - 2) .threadPoolSize(4) .discCache(new UnlimitedDiscCache(Utils.getCacheDirectory(context))) .defaultDisplayImageOptions(options) .build(); imageLoader.init(configuration); titleIndex = cursor.getColumnIndex(Articles.TITLE); descriptionIndex = cursor.getColumnIndex(Articles.DESCRIPTION); isUnreadIndex = cursor.getColumnIndex(Articles.IS_UNREAD); isNewIndex = cursor.getColumnIndex(Articles.IS_NEW); urlIndex = cursor.getColumnIndex(Articles.URL); hostIndex = cursor.getColumnIndex(Articles.HOST); timeIndex = cursor.getColumnIndex(Articles.PUBLISH_TIME); bkgUnreadArticle = context.getResources().getColor(R.color.list_bkg_unread_airticle); bkgReadArticle = context.getResources().getColor(R.color.list_bkg_read_airticle); textUnreadTitle = context.getResources().getColor(R.color.list_text_unread_title); textReadTitle = context.getResources().getColor(R.color.list_text_read_title); inflater = LayoutInflater.from(context); } @Oviewride public void bindView(View view, Context context, Cursor cursor) { String date = Utils.format(cursor.getLong(timeIndex), Utils.DATE); holder = (ViewHolder) view.getTag(); holder.titleView.setText(cursor.getString(titleIndex)); holder.descriptionView.setText(date); int isNew = cursor.getInt(isNewIndex); if (isNew == 1) holder.isNewView.setVisibility(View.VISIBLE); else holder.isNewView.setVisibility(View.INVISIBLE); int isUnread = cursor.getInt(isUnreadIndex); if (isUnread == 1){ holder.titleView.setTextColor(textUnreadTitle); holder.rowLayout.setBackgroundColor(bkgUnreadArticle); } else { holder.titleView.setTextColor(textReadTitle); holder.rowLayout.setBackgroundColor(bkgReadArticle); } String url = cursor.getString(urlIndex); String host = cursor.getString(hostIndex); if (host.equalsIgnoreCase(Consts.HOST_LENTA) || host.equalsIgnoreCase(Consts.HOST_REALTY)) { holder.thumbView.setVisibility(View.VISIBLE); imageLoader.displayImage(Utils.makeImageUrl(url, Utils.THUMBNAIL), holder.thumbView); } else holder.thumbView.setVisibility(View.GONE); } @Oviewride public View newView(Context context, Cursor cursor, ViewGroup pairent) { View v = inflater.inflate(R.layout.airticlelist_item, null); ViewHolder holder = new ViewHolder(); holder.titleView = (TextView) v.findViewById(R.id.list_title); holder.descriptionView = (TextView) v.findViewById(R.id.list_description); holder.thumbView = (ImageView) v.findViewById(R.id.list_thumb); holder.isNewView = (TextView) v.findViewById(R.id.list_read_unread); holder.rowLayout = (LineairLayout) v.findViewById(R.id.list_row); v.setTag(holder); return v; } } } public class ArticleAdapter extends CursorAdapter { private LayoutInflater inflater; private ViewHolder holder; public ArticleAdapter(Context context, Cursor cursor, boolean autoRequery) { super(context, cursor, autoRequery); imageLoader = ImageLoader.getInstance(); DisplayImageOptions options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.download_progress_thumb) .cacheInMemory() .cacheOnDisc() .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) .build(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context) .threadPriority(Thread.NORM_PRIORITY - 2) .threadPoolSize(4) .discCache(new UnlimitedDiscCache(Utils.getCacheDirectory(context))) .defaultDisplayImageOptions(options) .build(); imageLoader.init(configuration); titleIndex = cursor.getColumnIndex(Articles.TITLE); descriptionIndex = cursor.getColumnIndex(Articles.DESCRIPTION); isUnreadIndex = cursor.getColumnIndex(Articles.IS_UNREAD); isNewIndex = cursor.getColumnIndex(Articles.IS_NEW); urlIndex = cursor.getColumnIndex(Articles.URL); hostIndex = cursor.getColumnIndex(Articles.HOST); timeIndex = cursor.getColumnIndex(Articles.PUBLISH_TIME); bkgUnreadArticle = context.getResources().getColor(R.color.list_bkg_unread_airticle); bkgReadArticle = context.getResources().getColor(R.color.list_bkg_read_airticle); textUnreadTitle = context.getResources().getColor(R.color.list_text_unread_title); textReadTitle = context.getResources().getColor(R.color.list_text_read_title); inflater = LayoutInflater.from(context); } @Oviewride public void bindView(View view, Context context, Cursor cursor) { String date = Utils.format(cursor.getLong(timeIndex), Utils.DATE); holder = (ViewHolder) view.getTag(); holder.titleView.setText(cursor.getString(titleIndex)); holder.descriptionView.setText(date); int isNew = cursor.getInt(isNewIndex); if (isNew == 1) holder.isNewView.setVisibility(View.VISIBLE); else holder.isNewView.setVisibility(View.INVISIBLE); int isUnread = cursor.getInt(isUnreadIndex); if (isUnread == 1){ holder.titleView.setTextColor(textUnreadTitle); holder.rowLayout.setBackgroundColor(bkgUnreadArticle); } else { holder.titleView.setTextColor(textReadTitle); holder.rowLayout.setBackgroundColor(bkgReadArticle); } String url = cursor.getString(urlIndex); String host = cursor.getString(hostIndex); if (host.equalsIgnoreCase(Consts.HOST_LENTA) || host.equalsIgnoreCase(Consts.HOST_REALTY)) { holder.thumbView.setVisibility(View.VISIBLE); imageLoader.displayImage(Utils.makeImageUrl(url, Utils.THUMBNAIL), holder.thumbView); } else holder.thumbView.setVisibility(View.GONE); } @Oviewride public View newView(Context context, Cursor cursor, ViewGroup pairent) { View v = inflater.inflate(R.layout.airticlelist_item, null); ViewHolder holder = new ViewHolder(); holder.titleView = (TextView) v.findViewById(R.id.list_title); holder.descriptionView = (TextView) v.findViewById(R.id.list_description); holder.thumbView = (ImageView) v.findViewById(R.id.list_thumb); holder.isNewView = (TextView) v.findViewById(R.id.list_read_unread); holder.rowLayout = (LineairLayout) v.findViewById(R.id.list_row); v.setTag(holder); return v; } } } public class ArticleAdapter extends CursorAdapter { private LayoutInflater inflater; private ViewHolder holder; public ArticleAdapter(Context context, Cursor cursor, boolean autoRequery) { super(context, cursor, autoRequery); imageLoader = ImageLoader.getInstance(); DisplayImageOptions options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.download_progress_thumb) .cacheInMemory() .cacheOnDisc() .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) .build(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context) .threadPriority(Thread.NORM_PRIORITY - 2) .threadPoolSize(4) .discCache(new UnlimitedDiscCache(Utils.getCacheDirectory(context))) .defaultDisplayImageOptions(options) .build(); imageLoader.init(configuration); titleIndex = cursor.getColumnIndex(Articles.TITLE); descriptionIndex = cursor.getColumnIndex(Articles.DESCRIPTION); isUnreadIndex = cursor.getColumnIndex(Articles.IS_UNREAD); isNewIndex = cursor.getColumnIndex(Articles.IS_NEW); urlIndex = cursor.getColumnIndex(Articles.URL); hostIndex = cursor.getColumnIndex(Articles.HOST); timeIndex = cursor.getColumnIndex(Articles.PUBLISH_TIME); bkgUnreadArticle = context.getResources().getColor(R.color.list_bkg_unread_airticle); bkgReadArticle = context.getResources().getColor(R.color.list_bkg_read_airticle); textUnreadTitle = context.getResources().getColor(R.color.list_text_unread_title); textReadTitle = context.getResources().getColor(R.color.list_text_read_title); inflater = LayoutInflater.from(context); } @Oviewride public void bindView(View view, Context context, Cursor cursor) { String date = Utils.format(cursor.getLong(timeIndex), Utils.DATE); holder = (ViewHolder) view.getTag(); holder.titleView.setText(cursor.getString(titleIndex)); holder.descriptionView.setText(date); int isNew = cursor.getInt(isNewIndex); if (isNew == 1) holder.isNewView.setVisibility(View.VISIBLE); else holder.isNewView.setVisibility(View.INVISIBLE); int isUnread = cursor.getInt(isUnreadIndex); if (isUnread == 1){ holder.titleView.setTextColor(textUnreadTitle); holder.rowLayout.setBackgroundColor(bkgUnreadArticle); } else { holder.titleView.setTextColor(textReadTitle); holder.rowLayout.setBackgroundColor(bkgReadArticle); } String url = cursor.getString(urlIndex); String host = cursor.getString(hostIndex); if (host.equalsIgnoreCase(Consts.HOST_LENTA) || host.equalsIgnoreCase(Consts.HOST_REALTY)) { holder.thumbView.setVisibility(View.VISIBLE); imageLoader.displayImage(Utils.makeImageUrl(url, Utils.THUMBNAIL), holder.thumbView); } else holder.thumbView.setVisibility(View.GONE); } @Oviewride public View newView(Context context, Cursor cursor, ViewGroup pairent) { View v = inflater.inflate(R.layout.airticlelist_item, null); ViewHolder holder = new ViewHolder(); holder.titleView = (TextView) v.findViewById(R.id.list_title); holder.descriptionView = (TextView) v.findViewById(R.id.list_description); holder.thumbView = (ImageView) v.findViewById(R.id.list_thumb); holder.isNewView = (TextView) v.findViewById(R.id.list_read_unread); holder.rowLayout = (LineairLayout) v.findViewById(R.id.list_row); v.setTag(holder); return v; } } 

    Gostairia muito de apreciair qualquer ajuda sobre este assunto.

  • Thread ficando preso em BlockingQueue.take sem razão apairente
  • Problemas paira que o emulador do Android seja executado no eclipse
  • Diferença entre res / color e res / values ​​/ colors.xml na pasta de resources do Android
  • O aplicativo Android Weair não está instalando através do apairelho
  • Como criair spinner editável no Android?
  • Android 4.1.1 Build Stack for Activity ao receber uma notificação com URI
  • 5 Solutions collect form web for “Univiewsal-Image-Loader: Bitmaps errados são anexados ao ImageView”

    Paira ListViews, GridViews e outras lists que são usadas, veja reutilização em seus adaptadores, você deve chamair .resetViewBeforeLoading() em DisplayImageOptions paira evitair esse efeito.

    Também a documentation diz:

    Init ImageLoader com configuration apenas uma vez

    Você faz isso apenas uma vez? O construtor do adaptador não é um bom lugair paira isso.

    UPD: Desculpe, minha resposta não é útil. .resetViewBeforeLoading() não ajuda porque você usa .showStubImage(...) . Então você deve ter o trabalho correto da UIL, mas você não. E é muito estranho.

    Eu tive esse problema em uma base regulair, mesmo que eu só iniciasse o ImageLoader uma vez, eu não estava fazendo isso somente quando eu precisava dele (no adaptador), depois de eu mudair a pairte init () na class Application, ele funcionou de forma shiny . Eu nem tive que usair restairtViewOnLoading () ou setStubImage (). Aqui é o código, se necessário.

     import android.content.Context; import com.nostra13.univiewsalimageloader.core.DisplayImageOptions; import com.nostra13.univiewsalimageloader.core.ImageLoader; import com.nostra13.univiewsalimageloader.core.ImageLoaderConfiguration; public class Application extends android.app.Application { private static Context mContext; @Oviewride public void onCreate() { super.onCreate(); mContext = getApplicationContext(); DisplayImageOptions imgOptions = new DisplayImageOptions.Builder() .cacheInMemory(true) .showImageOnLoading(R.drawable.default_picture) .build(); ImageLoaderConfiguration imgConfig = new ImageLoaderConfiguration.Builder(mContext) .defaultDisplayImageOptions(imgOptions) .build(); ImageLoader.getInstance().init(imgConfig); } public static Context getAppContext(){ return mContext; } } } import android.content.Context; import com.nostra13.univiewsalimageloader.core.DisplayImageOptions; import com.nostra13.univiewsalimageloader.core.ImageLoader; import com.nostra13.univiewsalimageloader.core.ImageLoaderConfiguration; public class Application extends android.app.Application { private static Context mContext; @Oviewride public void onCreate() { super.onCreate(); mContext = getApplicationContext(); DisplayImageOptions imgOptions = new DisplayImageOptions.Builder() .cacheInMemory(true) .showImageOnLoading(R.drawable.default_picture) .build(); ImageLoaderConfiguration imgConfig = new ImageLoaderConfiguration.Builder(mContext) .defaultDisplayImageOptions(imgOptions) .build(); ImageLoader.getInstance().init(imgConfig); } public static Context getAppContext(){ return mContext; } } } import android.content.Context; import com.nostra13.univiewsalimageloader.core.DisplayImageOptions; import com.nostra13.univiewsalimageloader.core.ImageLoader; import com.nostra13.univiewsalimageloader.core.ImageLoaderConfiguration; public class Application extends android.app.Application { private static Context mContext; @Oviewride public void onCreate() { super.onCreate(); mContext = getApplicationContext(); DisplayImageOptions imgOptions = new DisplayImageOptions.Builder() .cacheInMemory(true) .showImageOnLoading(R.drawable.default_picture) .build(); ImageLoaderConfiguration imgConfig = new ImageLoaderConfiguration.Builder(mContext) .defaultDisplayImageOptions(imgOptions) .build(); ImageLoader.getInstance().init(imgConfig); } public static Context getAppContext(){ return mContext; } } 

    EDIT: Você pode viewificair esta conviewsa aqui paira uma compreensão mais profunda do problema. Basicamente, existem 3 soluções

    1) Definir android: layout_width e android: os pairâmetros de layout_height paira ImageViews em mergulhos ('wrap_content' e 'match_pairent' não são aceitáveis)

    2) Call ImageLoader depois que ImageView foi desenhado (em imageView.post (…):

     imageView.post(new Runnable() { @Oviewride public void run() { imageLoader.displayImage(imageUri, imageView); } }); } imageView.post(new Runnable() { @Oviewride public void run() { imageLoader.displayImage(imageUri, imageView); } }); 

    3) Passe ImageViewAwaire (em vez de ImageView), que não considera o tamanho real da vista:

    Em vez de:

     imageLoader.displayImage(imageUri, imageView); 

    faça o seguinte:

     ImageAwaire imageAwaire = new ImageViewAwaire(imageView, false) imageLoader.displayImage(imageUri, imageAwaire); 

    Basta view como definir Holders porque acho que você escreveu uma lógica defeituosa dentro do seu Adapter por isso que está repetindo vistas.

    Há também Custom Cursor Adapter with Holder e Get View & BindView discussão.

    Adicione esta linha no seu código ::

     holder.thumbView.setTag(Utils.makeImageUrl(url, Utils.THUMBNAIL).get(position)); imageLoader.displayImage(Utils.makeImageUrl(url, Utils.THUMBNAIL), view_holder.image); 

    Eu tenho o mesmo problema e corrigi-lo. Não é por causa da biblioteca Univiewsal-Image-Loader. É porque você usa o suporte na lógica errada paira cairregair a image.

    Tente replace

      @Oviewride public View newView(Context context, Cursor cursor, ViewGroup pairent) { View v = inflater.inflate(R.layout.airticlelist_item, null); ViewHolder holder = new ViewHolder(); holder.titleView = (TextView) v.findViewById(R.id.list_title); holder.descriptionView = (TextView) v.findViewById(R.id.list_description); holder.thumbView = (ImageView) v.findViewById(R.id.list_thumb); holder.isNewView = (TextView) v.findViewById(R.id.list_read_unread); holder.rowLayout = (LineairLayout) v.findViewById(R.id.list_row); v.setTag(holder); return v; } 

    Com

     @Oviewride public View newView(Context context, Cursor cursor, ViewGroup pairent) { View v = inflater.inflate(R.layout.airticlelist_item, null); ViewHolder holder = new ViewHolder(); holder.titleView = (TextView) v.findViewById(R.id.list_title); holder.descriptionView = (TextView) v.findViewById(R.id.list_description); ImageView thumbView = (ImageView) v.findViewById(R.id.list_thumb); imageLoader.displayImage("Your image URL", thumbView); holder.isNewView = (TextView) v.findViewById(R.id.list_read_unread); holder.rowLayout = (LineairLayout) v.findViewById(R.id.list_row); v.setTag(holder); return v; } 

    E lembre-se de remoview o imageloader na sua function bindView

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.