簡體   English   中英

滑行未加載 SVG

[英]Glide not loading SVG

我想顯示通過 API 接收到的圖像(類型 = SVG)。 出於安全原因,加載時需要驗證標頭才能獲取圖像。

這是我的 GlideModule:

@GlideModule
    @Excludes(OkHttpLibraryGlideModule.class)
    public class GlideModule extends AppGlideModule {
    
        @Override
        public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
            Lazy<UserRepository> repository = inject(UserRepository.class);
            registry.register(SVG.class, PictureDrawable.class, new SvgDrawableTranscoder()).append(InputStream.class, SVG.class, new SvgDecoder());
    
            OkHttpClient client = new OkHttpClient.Builder()
                    .readTimeout(15L, TimeUnit.SECONDS)
                    .connectTimeout(15L, TimeUnit.SECONDS)
                    .addInterceptor(new AuthInterceptor(repository.getValue()))
                    .build();
    
            registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));
        }
    
        @Override
        public boolean isManifestParsingEnabled() {
            return false;
        }
    }

我正在使用數據綁定將接收到的圖像直接加載到圖像視圖中:

@JvmStatic
@BindingAdapter("loadSvg")
fun loadSvgImage(view: ImageView, url: String?) {
   if (!url.isNullOrEmpty()) {
         val uri = Uri.parse(url)
         val requestBuilder = GlideApp.with(view)
            .`as`(PictureDrawable::class.java)
            .listener(SvgSoftwareLayerSetter())
         requestBuilder.load(uri).into(view)
   }
}

不顯示圖像,但也沒有警告/錯誤消息。

我的 GlideModule/Binding Function 有問題嗎?

我認為它不受支持,如 Glide 代碼所示:

enum ImageType {
  GIF(true),
  JPEG(false),
  RAW(false),
  /** PNG type with alpha. */
  PNG_A(true),
  /** PNG type without alpha. */
  PNG(false),
  /** WebP type with alpha. */
  WEBP_A(true),
  /** WebP type without alpha. */
  WEBP(false),
  /** Unrecognized type. */
  UNKNOWN(false);

列表中沒有 SVG。

然而,有一個名為 PainterSVG 的應用程序似乎也在使用 Glide,我看到了大多數 Glide 功能,如占位符、居中、縮略圖。 我不確定他們如何使它與 SVG 一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM