android listview 优化,Android ListView、GridView等性能优化
1.采用ViewHolder并避免在getView中執行耗時操作
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.image_list_item,parent, false);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView.findViewById(R.id.image);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ImageView imageView = holder.imageView;
final String tag = (String)imageView.getTag();
final String uri = getItem(position);
if (!uri.equals(tag)) {
imageView.setImageDrawable(mDefaultBitmapDrawable);
}
if (mIsGridViewIdle && mCanGetBitmapFromNetWork) {
imageView.setTag(uri);
mImageLoader.bindBitmap(uri, imageView, mImageWidth, mImageWidth);
}
return convertView;
}
}
private static class ViewHolder {
public ImageView imageView;
}
2.根據列表的滑動狀態來控制任務的執行頻率
監聽滑動狀態,當滑動停止的時候再去加載圖片
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
mIsGridViewIdle = true;
mImageAdapter.notifyDataSetChanged();
} else {
mIsGridViewIdle = false;
}
}
3.嘗試硬件加速來使ListView滑動更加流暢
android:hardwareAccelerated=”true”
總結
以上是生活随笔為你收集整理的android listview 优化,Android ListView、GridView等性能优化的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 电脑怎么向微信传文件夹(电脑微信如何传输
- 下一篇: iOS 16 “一键抠图”功能支持哪些机
