我正在使用Android Developers Blog Post中的代码将图像异步加载到RecyclerView中。我现在有一个问题,我想在加载时显示动画。不幸的是,AnimatedVectorDrawable和AnimatedVectorDrawableCompat不能像在帖子中那样进行扩展,因为所有构造函数都是私有的。 Picasso也不适合我,因为它不支持动画的平板电脑。
是否有其他干净的方法可以做到这一点?我希望Answers还有一些不需要外部依赖性的代码行。
修改
我现在把这个类作为占位符:
static class DownloadedDrawable extends ColorDrawable
{
private final WeakReference<BitmapDownloaderTask> bitmapDownloaderTaskReference;
public DownloadedDrawable(BitmapDownloaderTask bitmapDownloaderTask)
{
super(Color.TRANSPARENT);
bitmapDownloaderTaskReference = new WeakReference<>(bitmapDownloaderTask);
}
public BitmapDownloaderTask getBitmapDownloaderTask()
{
return bitmapDownloaderTaskReference.get();
}
}
并像这样使用它:
imageView.setImageDrawable(downloadedDrawable);
我想得的是具有相同功能的东西(如果它有效),我可以像我现在使用的占位符一样使用它:
static class AnimatedDownloadedDrawable extends AnimatedVectorDrawable
{
private final WeakReference<BitmapDownloaderTask> bitmapDownloaderTaskReference;
public AnimatedDownloadedDrawable(BitmapDownloaderTask bitmapDownloaderTask)
{
super(R.drawable.myAnimation);
bitmapDownloaderTaskReference = new WeakReference<>(bitmapDownloaderTask);
}
public BitmapDownloaderTask getBitmapDownloaderTask()
{
return bitmapDownloaderTaskReference.get();
}
}