내가 찾을 관리 솔루션은
public class YourViewsFactory implements RemoteViewsService.RemoteViewsFactory
{
Map<Integer, Boolean> flags = Collections.synchronizedMap(new HashMap<Integer, Boolean>());
Bitmap mBitmap;
Handler handler = new Handler(Looper.getMainLooper());
@Override
public RemoteViews getViewAt(final int position)
{
final RemoteViews row = new RemoteViews(ctxt.getPackageName(), R.layout.row);
flags.put(position, false);
handler.post(new Runnable()
{
@Override
public void run()
{
m_imgLoader.loadImage(YOUR_IMAGE_URL, new SimpleImageLoadingListener()
{
@Override
public void onLoadingStarted(String imageUri, View view)
{
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason)
{
flags.put(position, true);
}
@Override
public void onLoadingCancelled(String imageUri, View view)
{
flags.put(position, true);
}
@Override
public void onLoadingComplete(String arg0, View arg1, Bitmap bitmap)
{
mBitmap = bitmap;
flags.put(position, true);
}
});
}
});
while (!flags.get(position))
{
try
{
Thread.sleep(100);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
flags.put(position, false);
if (mBitmap != null)
{
row.setImageViewBitmap(R.id.ivPoster, mBitmap);
} else
{
row.setImageViewResource(R.id.ivPoster, R.drawable.cw);
}
mBitmap = null;
} // End of getViewAt override
} // End of class
이 아닌 내 솔루션 만 사용할 수 VOVA Klyshevich here 중 하나입니다!
여전히 최신 버전의 라이브러리와 관련이 있습니까? loadImageSync (...)를 사용하지 않는 이유는 무엇입니까? – grebulon
목록에 약 20 개의 요소가있는 경우 스크롤이 비현실적으로 느립니다. 그리고 약간의 up-down주기 이후 그것은 발사 장치를 부순다. – anil
@ azerto00 코드에서 캐시를 유지 관리하는 방법을 알려주시겠습니까? – Sangeetha