带有附加变量的AsyncTask的动画占位符图像

时间:2016-08-25 19:16:10

标签: java android android-asynctask android-recyclerview

我正在使用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();
    }
}

0 个答案:

没有答案