[21]——使用animated-rotate来实现Picasso载入图片前的等待动画

Picasso 想必大家都非常熟悉了,使用 Picasso 来载入一张网络图片也是非常简单的一件事情:

Picasso.with(mContext).load(mImageUrl).into(mIvImage);

当网络图片较大时,加载图片需要较长时间,这时候显示一个空白的 ImageView 对用户而言并不友好,我们需要用一个加载动画来提示用户正在加载图片,这时应该怎么做呢?

方法一:使用 ProgressDialog 来提示用户,在图片加载完毕后关闭 Dialog

这种方法需要用到 Picasso 的回调函数:

Picasso.with(mContext)
        .load(mImageUrl)
        .into(mIvImage, new Callback() {
            @Override
            public void onSuccess() {
                
            }
            @Override
            public void onError() {
            }
        });

在回调方法中来关闭 Dialog 即可。

这种方法存在的局限性是,适合整个页面是一个 ImageView ,比如那种查看图片详情的页面。

方法二:使用 animated-rotate 与 placeholder()

我们找到一个如下图所示的加载图:


loading.png

只需要将这个图片不断的基于中心店旋转就可以变成一个加载动画了。

Picasso 的 placeholder() 方法支持传入一个 Drawable 资源 ID,Drawable 文件 animated_rotate_drawable.xml 如下:

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:pivotX="50%"
    android:pivotY="50%"
    android:drawable="@drawable/loading">
</animated-rotate>

Java 代码如下:

Picasso.with(mContext)
        .load(mImageUrl)
        .placeholder(R.drawable.animated_rotate_drawable)
        .into(mIvImage);

怎么样是不是超级简单的实现了加载等待的动画效果了 :-D !如果对你有帮助请点赞哦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容