android 登录时的加载动态的图片不显示,加载Gif图片的两种方法和常见问题

方法一   使用Gif三方库加载

1, 在moudle的build.gradle文件的dependencies节点下加上下面这句代码

implementation  'pl.droidsonroids.gif:android-gif-drawable:1.2.16'

373fcc66dd42

三方库的依赖

2, 静态加载: 在布局文件中引用三方库的GifImageView静态加载如下所示

android:id="@+id/gif_view"

android:layout_height="match_parent"

android:layout_width="match_parent"

android:scaleType="centerCrop"

tools:src="@mipmap/app_splash"/>

373fcc66dd42

本图是在约束布局下引用方法

动态加载

373fcc66dd42

动态加载

从上图可以看到 创建GifGDrawable的第二个参数可以是一个本地资源ID,也可以是一个本地文件,还可以是一个Uri

顺便贴上代码:

//使用三方库加载Gif

private  void  gifDrawableFun() {

try {

gifDrawable =new GifDrawable(getResources(),           R.mipmap.app_splash);

}catch (IOException e) {

e.printStackTrace();

}

gif_view.setImageDrawable(gifDrawable);

}

方法二   使用Glide加载:

1, 在moudle的build.gradle文件的dependencies节点下加上下面这句代码

373fcc66dd42

Glide的依赖引入

implementation   'com.github.bumptech.glide:glide:4.11.0'

2,调用下面的方法

373fcc66dd42

这里的R.mipmap.app_splash是我本地gif图片资源,同样你也可以传入一个uri;

//使用Glide加载Gif

private void GlideFun(@NonNull View imageView) {

Glide.with(SplashActivity.this)

.load(R.mipmap.app_splash)

.listener(new RequestListener() {

@Override

public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target,

boolean isFirstResource) {

return false;

}

@Override

public    boolean    onResourceReady(Drawable resource, Object model, Target target,

DataSource dataSource, boolean isFirstResource) {

if (resourceinstanceof GifDrawable){

//Glide默认会加载多次这里设置只加载1次

((GifDrawable) resource).setLoopCount(1);

}

return false;

}

}).into((ImageView) imageView);

}

注意事项:

至此两种加载Gif图片的方法已经写完但是你会发现在加载图片的最开始会先出现一个空白页面才开始加载gif图片.

这个时候需要在我们的Manifast文件下的activity节点节点下加上一个跟gif背景一直的主题我是这样加的:

373fcc66dd42

加主题

android:theme="@style/libSplashTheme">

373fcc66dd42

主题

@color/color_splash

373fcc66dd42

加主题颜色

#151c2e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值