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);

    }
}

效果图:

结束,感谢观看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值