@Override
public Object instantiateItem(View view, int position) {
View mv = mListViews.get(position);
((ViewPager) view).addView(mv, 0);
// 加载图片
ImageView iv = (ImageView) mv.findViewById(R.id.imageView);
try {//图片的名称
String name=DBManager.getInstance(context).getAll().get(position).getPhotoPath();
InputStream is = context.getAssets().open(name);
Bitmap bmp = BitmapFactory.decodeStream(is);
is.close();
iv.setImageBitmap(bmp);
} catch (IOException e) {
e.printStackTrace();
}
return mv;
}
@Override
public void destroyItem(View view, int position, Object object) {
View mv = mListViews.get(position);
ImageView iv = (ImageView) mv.findViewById(R.id.imageView);
BitmapDrawable drawbale=(BitmapDrawable) iv.getDrawable();
drawbale.getBitmap().recycle();
}
上面是代码 ,滑动多了会出现
BitmapFactory.Options opts=new BitmapFactory.Options();
//设置图片的宽和高都为原先图片的一半(压缩)
opts.inSampleSize=2;
mBitmap=BitmapFactory.decodeFile(图片地址, opts);
压缩加载的图片,不用的Bitmap对象要释放掉,
你这个应该是
InputStream is = context.getAssets().open(name);
Bitmap bmp = BitmapFactory.decodeStream(is);
这2句代码引起的,你可以异步把图片拿到然后在到ViewPager中加载
参考:https://blog.csdn.net/jiejieguita/article/details/104232867
这个可以,我用的就是这个