Android|Android 上千张图片的列表滑动加载

【Android|Android 上千张图片的列表滑动加载】一般项目中图片加载用的比较多的是ImageLoader 但是需求自己配置一些参数 上手有些复杂
对于手机图库中有上千张图片需要加载时 一个使用性能很好的库Glide可以解决 效果图如下
滑动非常流畅 加载速度也很快 而且使用也非常简单 个人感觉比手机自带的图库效果更佳
上图上代码

Code

public class MainActivity extends Activity {ArrayList fileNames = new ArrayList(); //本地图片路径@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); GridView listView = (GridView) findViewById(R.id.gridview); //ImageAdapter imageAdapter = new ImageAdapter(getApplicationContext(),Images.imageUrls); ImageAdapter imageAdapter = new ImageAdapter(getApplicationContext(), fileNames); listView.setAdapter(imageAdapter); }private void initData() {fileNames.clear(); Cursor cursor = getContentResolver().query(Media.EXTERNAL_CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { byte[] data = https://www.it610.com/article/cursor.getBlob(cursor.getColumnIndex(Media.DATA)); //图片的保存位置的数据 fileNames.add(new String(data, 0, data.length - 1)); } }}

activity_main

ImageAdapter
public class ImageAdapter extends BaseAdapter {private Context context; private String[] imageUrls; ArrayList fileNames; private LinearLayout.LayoutParams mImageViewLayoutParams; /* * public ImageAdapter(Context context, String[] imageUrls) { super(); * this.context = context; this.imageUrls = imageUrls; } */public ImageAdapter(Context context, ArrayList fileNames) { super(); this.context = context; this.fileNames = fileNames; DisplayMetrics dm = context.getResources().getDisplayMetrics(); int wh = dm.widthPixels; int w = (wh - context.getResources().getDimensionPixelSize(R.dimen.test) * 2) / 3; mImageViewLayoutParams = new LinearLayout.LayoutParams(w, w); }@Override public int getCount() { return fileNames.size(); }@Override public Object getItem(int position) { return null; }@Override public long getItemId(int position) { return position; }@Override public View getView(int position, View convertView, ViewGroup parent) {View view; if (convertView == null) { view = LayoutInflater.from(context).inflate(R.layout.item, null); } else { view = convertView; } ImageView image = (ImageView) view.findViewById(R.id.image); image.setLayoutParams(mImageViewLayoutParams); Glide.with(context).load(fileNames.get(position)).centerCrop().placeholder(R.color.test).crossFade() .into(image); return view; } }

item

Demo见github
https://github.com/huanyi0723/ImageList
转载于:https://www.cnblogs.com/huanyi0723/p/4816393.html

    推荐阅读