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

可以自己做免费网站吗办公装修设计

可以自己做免费网站吗,办公装修设计,中关村哪里可以做网站,seo 优化思路序言 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.hkea.cn/news/14496120/

相关文章:

  • 布吉网站建设技术托管成都小程序开发公司有哪些
  • 宝格丽网站建设网络联盟推广
  • 广东专业移动网站服务商wordpress一键还原
  • 网站性能优化的方法有哪些wordpress程序备份
  • 网站建设设计公司类网站织梦模板 带手机端wordpress模板编写
  • 一微网站建设公司好网站建设确认报告
  • 中国标准溶液网站建设有谁会设制网站
  • 晋城两学一做网站网站关键词查询网址
  • 徐州鼓楼区建设网站wordpress主题 笑话
  • 手把手教你做网站一键打开多个wordpress
  • 潭州教育网站开发网站建设那好
  • 网站开发干嘛移动端网站建设的请示
  • 返佣贵金属交易所网站建设网站制作开发策划
  • 网站备案在哪里查询网站后台更新文章 前台不显示
  • 做房地产行业的怎么做网站在阿里巴巴上做网站需要什么条件
  • 柳州企业网站建设公司汕头网站上排名
  • 已经有网站域名如何做网页优化网站公司哪家口碑好
  • 可信网站认证必须做吧网站开发工具简介
  • 所见即所得的网站开发软件网站建设找哪家公司比较好
  • 企业网站做静态网站还是嘉定网站建设公司
  • 品牌服装网站建设现状学视频剪辑大概需要多少钱
  • 深圳做二类学分的网站有了网站源码如何做网页
  • 建设校园网站意义四川省城乡住房建设厅网站
  • 商业网站设计与制作请描述网站开发的一般流程图
  • 怎么做足球直播网站网店运营
  • 引擎网站推广法怎么做现在网站建设用到哪些技术
  • 帮别人设计网站的网站阳江招聘网最新消息
  • 怎么做公司销售网站PHP 网站搜索怎么做
  • 嘉兴企业网站模板建站沈阳亚洲城属于哪个社区
  • asp.net 网站管理工具 遇到错误网站开发设计的技术路线