ListView에 ImageView가 있고 ImageView에 기본 이미지가 있고 렌더링하는 동안 이미지를 비동기 적으로 다운로드하여 ImageViews에로드합니다. 그것은 완벽하게 작동하지만 두 항목을 아래로 스크롤하고 뒤로 스크롤하면 첫 번째와 두 번째 행의 기본 이미지가 여섯 번째 행과 일곱 번째 행의 이미지로 변경됩니다.안드로이드에서 스크롤하는 동안 ListView에서 이미지가 바뀌고 있습니다.
이 항목을 읽었지만 해결책을 찾지 못했습니다.
ListView images changing During Scroll
public class RssAdapter extends BaseAdapter {
private final List<SyndEntry> items;
private static Context context;
private static Map<String, Bitmap> mBitmapCache = new HashMap<String, Bitmap>();
public RssAdapter(Context context, List<SyndEntry> items) {
this.items = items;
this.context = context;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int id) {
return id;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
if (convertView == null) {
convertView = View.inflate(context, R.layout.rss_item, null);
holder.itemTitle = (TextView) convertView.findViewById(R.id.itemTitle);
holder.itemPubDate = (TextView) convertView.findViewById(R.id.itemPubDate);
holder.itemImg = (ImageView) convertView.findViewById(R.id.itemImg);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.itemTitle.setText(items.get(position).getTitle());
holder.itemPubDate.setText(items.get(position).getPublishedDate().toString());
List<SyndEnclosure> encls = items.get(position).getEnclosures();
if(!encls.isEmpty()){
holder.imageUrl = encls.get(0).getUrl();
}
if (!encls.isEmpty() && holder.imageUrl != null && !holder.imageUrl.equals("null")) {
holder.setImage(holder.imageUrl);
}
return convertView;
}
private static class ViewHolder {
TextView itemTitle;
TextView itemPubDate;
ImageView itemImg;
String imageUrl;
public void setImage(String imageUrl) {
this.imageUrl = imageUrl;
Bitmap imageBitmap = mBitmapCache.get(imageUrl);
if(imageBitmap!=null){
itemImg.setImageBitmap(imageBitmap);
} else {
AsyncHttpClient client = new AsyncHttpClient();
client.get(imageUrl, null, fileHandler);
}
}
FileAsyncHttpResponseHandler fileHandler = new FileAsyncHttpResponseHandler(context) {
@Override
public void onFailure(int statusCode, Header[] headers, Throwable throwable, File file) {
}
@Override
public void onSuccess(int statusCode, Header[] headers, File response) {
Bitmap imageBitmap = BitmapFactory.decodeFile(response.getPath());
itemImg.setImageBitmap(imageBitmap);
mBitmapCache.put(imageUrl, imageBitmap);
}
};
}
Image change when i scroll gridview
My images changing during scroll in listview android
나는 내 이미지 설정하거나하지되었는지 여부를 확인하는 부울 변수를 설정하는 시도도 된 SharedPreferences를 사용하려고하지만,이 부분 내 이미지가 바뀔 때 코드가 실행되지 않았습니다.if(!encls.isEmpty()){
holder.imageUrl = encls.get(0).getUrl();
}
if (!encls.isEmpty() && holder.imageUrl != null && !holder.imageUrl.equals("null")) {
holder.setImage(holder.imageUrl);
}
당신은 내가 당신이 라이브러리 (피카소 나 글라이드)를 사용하는 것이 좋습니다 강력 것이다 생산을 구현해야하는 경우 – lelloman
이 링크를 따라이 것입니다 작품 [이 링크를 참조하십시오 (http://stackoverflow.com/questions/36563923/my-images-changing-during-scroll-in-listview-android) –
@MilanPansuriya 감사합니다. 전에 읽었지만 도움이되지 않았습니다. – user1721713