0
我有使用毕加索怪异的行为。 我有三个屏幕。屏幕A具有回收器视图,当用户单击一个项目时,屏幕B将打开并提供有关所单击项目的更多详细信息。 在屏幕B上有三个图像的缩略图 并且当任何这些缩略图的(即我装载有毕加索)用户点击我开始后台线程写入这些位图的文件,并通过对屏幕C的屏幕中的文件路径 C有一个查看传呼机来显示图像。所以,我现在有使用毕加索,文件路径再次加载 图像。毕加索负荷错图像
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = LayoutInflater.from(this.context).inflate(R.layout.item_fullscreen_image,
container, false);
ImageView img = (ImageView) view.findViewById(R.id.img);
//img.setImageURI(Uri.parse(filePaths.get(position)));
Picasso.with(context).load(new File(filePaths.get(position))).into(img);
((ViewGroup) container).addView(photoView);
return view;
}
的问题是,当用户选择一个画面一个项目,去屏幕B和轻按 imageview的打开与查看寻呼机屏幕C,如果是第一次,做工精细。
如果不是第一次,从带毕加索文件加载的图像不会改变, 它总是加载相同的三个图像来填充视图寻呼机。
我已经尝试过使用目标加载,但问题仍然存在:
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = LayoutInflater.from(this.context).inflate(R.layout.item_fullscreen_image,
container, false);
ImageView img = (ImageView) view.findViewById(R.id.img);
Target target = new TargetBitmaps(img);
img.setTag(target);
Picasso.with(context).load(new File(filePaths.get(position))).into(target);
((ViewGroup) container).addView(photoView);
return view;
}
private class TargetBitmaps implements Target {
private ImageView img;
public TargetBitmaps(ImageView img) {
this.img = img;
}
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
img.setImageBitmap(bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
}
我知道这是不是我的功能,以节省位图到文件,因为如果 我不毕加索使用和问题以这种方式做,做工精细:
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = LayoutInflater.from(this.context).inflate(R.layout.item_fullscreen_image,
container, false);
ImageView img = (ImageView) view.findViewById(R.id.img);
img.setImageURI(Uri.parse(filePaths.get(position)));
((ViewGroup) container).addView(photoView);
return view;
}
所以,如果有人能帮助我,告诉我在做什么错了,我很欣赏。