Android Glide图片框架的使用
Posted 森然献凉i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Glide图片框架的使用相关的知识,希望对你有一定的参考价值。
介绍:Glide是Google推荐的一套快速高效的图片加载框架,功能强大且使用方便
基本使用
添加Glide依赖
//Glide
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
注册权限(网络权限和访问SD卡的权限)
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
在手机上展示一张网络图片
iv=findViewById(R.id.iv);
Glide.with(this)
//加载网络图片
.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201303%2F29%2F20130329205806_kTTnv.thumb.700_0.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628905531&t=817e2ab0825790a0f4772bc2f22f0998")
//展示到imageview
.into(iv);
效果图:
占位符的使用
placeholder 正在请求图片的时候展示的图片
error 如果请求失败的时候展示的图片
fallback 请求为空的时候展示的图片
请求配置
RequestOptions requestOptions=new RequestOptions()
.placeholder(R.drawable.zhengzai)//正在请求图片的时候展示的图片
.error(R.drawable.shibai)//如果请求失败的时候展示的图片
.fallback(R.drawable.kongde)//请求为空的时候展示的图片
.override(100,100);//指定加载图片的大小
在.Glide方法中使用.apply方法使用配置
Glide.with(this)
//加载网络图片
.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201303%2F29%2F20130329205806_kTTnv.thumb.700_0.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628905531&t=817e2ab0825790a0f4772bc2f22f0998")
//展示到imageview
.apply(requestOptions)
.into(iv);
进阶使用
图片的过渡动画效果
创建DrawableCrossFadeFactory对象设置.setCrossFadeEnabled(true),使动画结束后占位符消失
//占位符完成动画时消失 setCrossFadeEnabled(true),不设置的话占位符仍然保留
DrawableCrossFadeFactory factory=new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();
在.Glide方法中使用.transition方法设置交叉淡入的动画效果
Glide.with(this)
//加载网络图片
.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201303%2F29%2F20130329205806_kTTnv.thumb.700_0.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628905531&t=817e2ab0825790a0f4772bc2f22f0998")
//展示到imageview
.apply(requestOptions)
//交叉淡入的动画效果
.transition(DrawableTransitionOptions.withCrossFade(factory))
.into(iv);
变换,改变图片的样式
圆角 CircleCrop
四个角度统一指定 RoundedCorners (需要给弧度参数)
四个角度单独指定 GranularRoundedCorners(需要给四个角的弧度参数)
旋转 Rotate(需要给旋转角度参数)
只演示圆角效果
Glide.with(this)
//加载网络图片
.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201603%2F22%2F20160322214908_wSYsj.jpeg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628909386&t=57e3118aa2ac64789ba72e2b53e7677b")
//展示到imageview
.apply(requestOptions)
//交叉淡入的动画效果
.transition(DrawableTransitionOptions.withCrossFade(factory))
//图片的变换效果CircleCrop圆角,RoundedCorners四个角度统一指定,GranularRoundedCorners四个角度单独指定,Rotate旋转
.transform(new CircleCrop())
.into(iv);
整个MainActivity.java代码
package com.cdw.studyglide;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.load.resource.bitmap.GranularRoundedCorners;
import com.bumptech.glide.load.resource.bitmap.Rotate;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.transition.DrawableCrossFadeFactory;
public class MainActivity extends AppCompatActivity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=findViewById(R.id.iv);
RequestOptions requestOptions=new RequestOptions()
.placeholder(R.drawable.zhengzai)//正在请求图片的时候展示的图片
.error(R.drawable.shibai)//如果请求失败的时候展示的图片
.fallback(R.drawable.kongde)//请求为空的时候展示的图片
.override(100,100);//指定加载图片的大小
//占位符完成动画时消失 setCrossFadeEnabled(true),不设置的话占位符仍然保留
DrawableCrossFadeFactory factory=new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();
Glide.with(this)
//加载网络图片
.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201603%2F22%2F20160322214908_wSYsj.jpeg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628909386&t=57e3118aa2ac64789ba72e2b53e7677b")
//展示到imageview
.apply(requestOptions)
//交叉淡入的动画效果
.transition(DrawableTransitionOptions.withCrossFade(factory))
//图片的变换效果CircleCrop圆角,RoundedCorners四个角度统一指定,GranularRoundedCorners四个角度单独指定,Rotate旋转
.transform(new CircleCrop())
.into(iv);
}
}
效果图:
结束,感谢观看
以上是关于Android Glide图片框架的使用的主要内容,如果未能解决你的问题,请参考以下文章