当前位置: 首页 > news >正文

网站微信分享链接怎么做的免费网站服务器安全软件下载

网站微信分享链接怎么做的,免费网站服务器安全软件下载,网站自适应,贵州建设厅网站八大员报名入口序言 glide可以在load的时候传入一个资源id来加载本地图标#xff0c;但是在开发过程中。还得区分数据类型来分别处理。这样的使用成本比较大。希望通过自定义ModelLoader实现通过自定义的url来加载Drawab。降低使用成本 实现 一共四个类 类名作用GlideIcon通过自定义url的…序言 glide可以在load的时候传入一个资源id来加载本地图标但是在开发过程中。还得区分数据类型来分别处理。这样的使用成本比较大。希望通过自定义ModelLoader实现通过自定义的url来加载Drawab。降低使用成本 实现 一共四个类 类名作用GlideIcon通过自定义url的编码和提取值的作用GlideIconModelLoader自定义的ModelLocader实现自定义的url到drawable的获取过程LocalFetcher获取drawabMyGlideModule用来注册自定义的配置 GlideIcon package com.zhuguohui.app.lib.glide;import android.util.Log;import com.zhuguohui.app.lib.app.BaseApp;/*** pre* Created by zhuguohui* Date: 2024/6/5* Time: 13:43* Desc:* /pre*/ public class GlideIcon {static String ICON_START GlideIcon://;public static boolean isIcon(String url) {return url ! null url.startsWith(ICON_START);}public static String get(int drawableId) {return ICON_START drawableId;}public static int getValue(String url) throws Exception {if (isIcon(url)) {String resourceName url.substring(ICON_START.length());return Integer.parseInt(resourceName);}throw new IllegalArgumentException(url is not a glideIcon);} } GlideIconModeLoader package com.zhuguohui.app.lib.glide;import android.graphics.drawable.Drawable;import com.bumptech.glide.load.Key; import com.bumptech.glide.load.Options; import com.bumptech.glide.load.model.ModelLoader; import com.bumptech.glide.load.model.ModelLoaderFactory; import com.bumptech.glide.load.model.MultiModelLoaderFactory;import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.security.MessageDigest;/*** pre* Created by zhuguohui* Date: 2024/6/5* Time: 13:38* Desc:* /pre*/ public class GlideIconModeLoader implements ModelLoaderString, Drawable {static class KeyImpl implements Key {String url;public KeyImpl(String url) {this.url url;}Overridepublic void updateDiskCacheKey(MessageDigest messageDigest) {messageDigest.update(url.getBytes(StandardCharsets.UTF_8));}}Overridepublic LoadDataDrawable buildLoadData(String s, int width, int height, Options options) {return new LoadData(new KeyImpl(s), new LocalFetcher(s));}Overridepublic boolean handles(String s) {return GlideIcon.isIcon(s);}public static ModelLoaderFactoryString, Drawable factorynew ModelLoaderFactoryString, Drawable() {Overridepublic ModelLoaderString, Drawable build(MultiModelLoaderFactory multiFactory) {return new GlideIconModeLoader();}Overridepublic void teardown() {}}; } LocalFetcher package com.zhuguohui.app.lib.glide;import android.graphics.drawable.Drawable;import com.bumptech.glide.Priority; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.data.DataFetcher; import com.zhuguohui.app.lib.app.BaseApp;import java.io.InputStream; import java.util.BitSet;/*** pre* Created by zhuguohui* Date: 2024/6/5* Time: 11:22* Desc:* /pre*/ public class LocalFetcher implements DataFetcherDrawable {String url;public LocalFetcher(String url) {this.url url;}Overridepublic void loadData(Priority priority, DataCallback? super Drawable callback) {try {int id GlideIcon.getValue(url);callback.onDataReady(BaseApp.app().getResources().getDrawable(id));} catch (Exception e) {callback.onLoadFailed(e);}}Overridepublic void cleanup() {}Overridepublic void cancel() {}Overridepublic ClassDrawable getDataClass() {return Drawable.class;}Overridepublic DataSource getDataSource() {return DataSource.MEMORY_CACHE;} } MyGlideModule package com.zhuguohui.app.lib.glide;import android.content.Context; import android.graphics.drawable.Drawable; import android.util.Log;import com.bumptech.glide.Glide; import com.bumptech.glide.Registry; import com.bumptech.glide.annotation.GlideModule; import com.bumptech.glide.module.AppGlideModule;import java.io.InputStream;/*** pre* Created by zhuguohui* Date: 2024/6/5* Time: 11:11* Desc:* /pre*/ GlideModule public class MyGlideModule extends AppGlideModule {Overridepublic void registerComponents(Context context, Glide glide, Registry registry) {super.registerComponents(context, glide, registry);registry.prepend(String.class, Drawable.class, GlideIconModeLoader.factory);}} 使用 注册 需要再gralde中导入下面两个依赖, 特别是 注解处理器没有这个无法注册 //glide --startapi com.github.bumptech.glide:glide:4.16.0annotationProcessor com.github.bumptech.glide:compiler:4.11.0//glide --end代码中 直接这样用就行了 String imageUrl GlideIcon.get(R.mipmap.icon_xiaoxi_xitong); 位置 MyGlideModule 这个类可以在lib module中。 注意 bug 在使用 .transition(DrawableTransitionOptions.with(factory)) 实现淡入淡出的过程中发现第一次显示的时候无法显示本地图片。后来查了一下这是glide的bug。后面有空再来处理。 Glide.with(getContext()).load(url) // .transition(DrawableTransitionOptions.with(factory)).apply(options).into(imageView);经过检测上面的bug是因为使用了第三方库 CircleImageView
http://www.w-s-a.com/news/966850/

相关文章:

  • 30岁转行做网站设计丰涵网站建设
  • 山东省和住房建设厅网站首页开发商不按时交房可以退房吗
  • asp网站怎么做404页面跳转本地南通网站建设
  • 点击网站出现微信二维码的链接怎么做申请网站空间怎么做
  • 网站开发的论文题目广告设计排行榜
  • 网络营销网站 功能南京h5制作公司
  • 做网站的费用的会计分录合肥做网站推广哪家好
  • 电子商城网站开发怎么wordpress用的什么主题
  • 榆林电商网站建设网上做试卷的网站
  • 文山网站建设代理中公教育培训机构官网
  • 郑州it培训机构有哪些上海外贸网站seo
  • dw做网站的实用特效广东住房与城乡建设厅网站
  • 模板网站 动易哪方面的网站
  • 怎么给网站做外链邵连虎郑州做网页的公司
  • 重庆网站开发哪家好宁波网站建设caiyiduo
  • 手机网站建设价格手机网站模版更换技巧
  • 哈尔滨松北区建设局网站美妆网站建设
  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统
  • 网站建设质量保证福州网络推广
  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计
  • 大连网站建设外贸wordpress添加文章属性
  • 商城网站建设合同范本网上哪里可以免费学编程
  • 服务器公司网站博客wordpress怎么编辑
  • 网站建设网络推广柯西乡塘网站建设