listView加载图片
来源:互联网 发布:网络主播收入来源 编辑:程序博客网 时间:2024/06/05 20:54
public class MusicAdapter extends BaseAdapter implements AbsListView.OnScrollListener{ private List<Music> musicList; private LayoutInflater mInflater; private ImageLoader mImageLoader; private int mStart, mEnd; public static String[] URLS; private boolean mFirstIn; public MusicAdapter(Context context, List<Music> data, ListView listView){ musicList = data; mInflater = LayoutInflater.from(context); URLS = new String[data.size()]; mImageLoader = new ImageLoader(listView); for (int i=0; i<data.size(); i++){ URLS[i] = data.get(i).getMusicIcon(); } mFirstIn = true; listView.setOnScrollListener(this); } @Override public int getCount() { return musicList.size(); } @Override public Object getItem(int position) { return musicList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView == null){ viewHolder = new ViewHolder(); convertView = mInflater.inflate(R.layout.item_net_music, null); viewHolder.ivIcon = (ImageView) convertView.findViewById(R.id.iv_icon); viewHolder.tvName = (TextView) convertView.findViewById(R.id.tv_name); viewHolder.tvContent = (TextView) convertView.findViewById(R.id.tv_content); convertView.setTag(viewHolder); }else{ viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.ivIcon.setImageResource(R.mipmap.ic_launcher); String iconUrl = musicList.get(position).getMusicIcon(); viewHolder.ivIcon.setTag(iconUrl); /** * 使用多线程方式异步加载图片 */ //new ImageLoader().showImageByThread(viewHolder.ivIcon, iconUrl); /** * 使用AsyncTask异步加载图片 */ mImageLoader.showImageByAsyncTask(viewHolder.ivIcon, iconUrl); viewHolder.tvName.setText(musicList.get(position).getTitle()); viewHolder.tvContent.setText(musicList.get(position).getArtist()); return convertView; } class ViewHolder{ public TextView tvName, tvContent; public ImageView ivIcon; } //ListView 状态切换的时候才会调用 @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == SCROLL_STATE_IDLE){ //处于停止状态,加载可见项 mImageLoader.loadImages(mStart, mEnd); }else{ //处于其他状态,停止加载 mImageLoader.cancelAllTasks(); } } //在整个滑动的过程中都会调用 @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { mStart = firstVisibleItem; mEnd = firstVisibleItem + visibleItemCount; //第一次显示时调用 if (mFirstIn && visibleItemCount>0){ mImageLoader.loadImages(mStart, mEnd); mFirstIn = false; } }}
0 0
- listview 异步加载图片
- ListView异步加载图片
- ListView 异步加载图片
- ListView异步加载图片
- ListView 异步加载图片
- listview异步图片加载
- ListView异步加载图片
- listview 异步加载图片
- listView异步加载图片
- ListView异步加载图片
- ListView异步加载图片
- listView 异步加载图片
- listView加载图片
- listview异步加载图片
- Async加载图片listview
- Android ListView异步加载图片
- Android ListView异步加载图片
- android ListView 异步加载图片
- 创建bean的几种常见方法
- Android Studio 小技巧合集
- Android 直播RTMP流
- iOS学习笔记 核心动画CoreAnimation
- 盒子模型
- listView加载图片
- Java Study 05
- ionic cordova 打开外部网站
- HTML 常用标签及示例
- Redis集群配置
- android怎样判断应用程序退到后台
- Tarjan模板
- spark运行方式及其常用参数
- 数组排序法(二)