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;
}
所以,如果有人能幫助我,告訴我在做什麼錯了,我很欣賞。