android Glide 加载网络图片

12 篇文章 0 订阅
import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.xolo.v6app.R;

import java.io.File;
import jp.wasabeef.glide.transformations.BlurTransformation;
import jp.wasabeef.glide.transformations.CropCircleTransformation;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;

public class GlideUtil {
    public GlideUtil(){}
    /**
     * 常规加载
     * @param context
     * @param path
     * @param imageView
     */
    public static void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context)
                .load(path.toString())
                .error(R.mipmap.menu_cancellation)//图片加载失败后,显示的图片
                .diskCacheStrategy(DiskCacheStrategy.RESULT) //缓存图片
                .into(imageView);
    }


    //高斯模糊
    public void vagueImage(Context context, Object path, ImageView imageView){
        Glide.with(context)
                .load(path.toString())
                .diskCacheStrategy( DiskCacheStrategy.SOURCE)
                // 设置高斯模糊  14":模糊度;"3":图片缩放3倍后再进行模糊,缩放3-5倍个人感觉比较好。
                //.bitmapTransform(new BlurTransformation(context, 14, 3))
                .into(imageView);
    }

    /**
     * 圆角图片
     * @param context
     * @param path
     * @param imageView
     * @param angle
     */
    public void filletImage(Context context, Object path, ImageView imageView,int angle){
        Glide.with(context)
                .load(path.toString())
                .error(R.mipmap.menu_cancellation)//图片加载失败后,显示的图片
                //.bitmapTransform(new RoundedCornersTransformation(context, angle, 0, RoundedCornersTransformation.CornerType.ALL))
                .crossFade(1000)
                .into(imageView);
    }
    // Glide.with(this).load(url).bitmapTransform(new RoundedCornersTransformation(this, 30, 0, RoundedCornersTransformation.CornerType.BOTTOM)).crossFade(1000).into(image5);

    /**
     * 加载GIF图
     * @param context
     * @param path
     * @param imageView
     */
    public void gifImage(Context context, Object path, ImageView imageView){
        Glide.with(context)
                .load(path)
                .asGif()
                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                .into(imageView);
    }

    /**
     *
     * @param context
     * @param path
     * @param imageView
     */
    public void circleImage(Context context, Object path, ImageView imageView){
        Glide.with(context)
                .load(path.toString())
                .error(R.mipmap.menu_cancellation)//图片加载失败后,显示的图片
                //.bitmapTransform(new CropCircleTransformation(context))
                .crossFade(1000)
                .into(imageView);
    }

    //常用的属性
    public void displayImageExperiment(Context context, Object path, ImageView imageView) {
        //with 可用于启动加载的顶级应用程序的RequestManager
        Glide.with(context)

                //文件路径(加载图片的网络位置,也可以是GIF,和本地视频-网络视频不行)
                //.load( Uri.fromFile( new File( filePath ) ) )   本地视频
                .load(path.toString())

                //占位图设置(加载错误或者加载失败时显示的图片)图片自己设置
                //placeholder() 和 error() 的参数都是只支持 int 和 Drawable 类型的参数,这种设计应该是考虑到使用本地图片
                .placeholder(R.mipmap.menu_cancellation)//图片加载出来前,显示的图片
                .error(R.mipmap.menu_cancellation)//图片加载失败后,显示的图片

                //缩略图,参数是flost类型,作为其倍数大小
                .thumbnail( 0.2f )

                //动画开关 - crossFade() 方法强制开启 Glide 默认的图片淡出淡入动画(也可以自定义动画效果哦)
                .crossFade()//或者使用 dontAnimate() 关闭动画

                //图片大小与裁剪
                .override(100,70)//这里的单位是px

                //图片的缓存处理  (内存缓存、磁盘缓存)
                /*
                 * DiskCacheStrategy.NONE 什么都不缓存
                 * DiskCacheStrategy.SOURCE 只缓存全尺寸图
                 * DiskCacheStrategy.RESULT 只缓存最终的加载图
                 * DiskCacheStrategy.ALL 缓存所有版本图(默认行为)
                 * */
                .diskCacheStrategy( DiskCacheStrategy.SOURCE )

                //图片请求的优先级,如果同时加载很多图片,就可以设置优先级(分为:立即、高、正常、低、优先)
                /*
                 * IMMEDIATE,
                 * HIGH,
                 * NORMAL,
                 * LOW,
                 * priority,
                 * */
                .priority (Priority.priority )

                //设置布局,加载的图片显示布局
                .into(imageView);
    }
    public static void loaderImage(Context context, File file, ImageView iv, int placeholder, int error){
        Glide.with(context)
                .load(file)
                .placeholder(R.mipmap.menu_cancellation)//加载中显示的图片
                .error(R.mipmap.menu_cancellation)//加载失败时显示的图片
                .into(iv);//URL加载方式
    }
    public static void loaderImage(Context context, String url, ImageView iv){
        Glide.with(context)
                .load(url)
                //.placeholder(R.mipmap.menu_cancellation)//加载中显示的图片
                .error(R.mipmap.menu_cancellation)//加载失败时显示的图片
                .into(iv);//URL加载方式
    }
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 使用 Glide 加载网络视频,你可以按照以下步骤进行操作: 1. 首先,在你的 Android 项目添加 Glide 的依赖。你可以在项目的 `build.gradle` 文件的 `dependencies` 块添加以下代码: ```groovy implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' ``` 2. 确保你已经在 AndroidManifest.xml 文件添加了网络权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 3. 在你需要加载网络视频的地方,使用 Glide 的 `VideoViewTarget` 类来加载视频。首先,导入 Glide 相关的类: ```java import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.ViewTarget; import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.transition.TransitionFactory; ``` 4. 然后,使用以下代码加载视频: ```java String videoUrl = "Your video URL"; Glide.with(context) .load(videoUrl) .apply(RequestOptions.noTransformation()) .into(new ViewTarget<View, Drawable>(yourVideoView) { @Override public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) { if (resource instanceof GifDrawable) { GifDrawable gifDrawable = (GifDrawable) resource; gifDrawable.setLoopCount(GifDrawable.LOOP_FOREVER); gifDrawable.start(); } else if (resource instanceof BitmapDrawable) { BitmapDrawable bitmapDrawable = (BitmapDrawable) resource; Bitmap bitmap = bitmapDrawable.getBitmap(); // Do something with the bitmap } } }); ``` 在上面的代码,将 "Your video URL" 替换为你要加载网络视频的 URL,同时将 `yourVideoView` 替换为要显示视频的 `VideoView` 或 `SurfaceView`。 这样,使用 Glide 加载网络视频就完成了。请注意,Glide 也可以加载其他类型的图片资源和动画资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值