如何使用Glide以'http://`开头显示URL的JPEG图像

问题描述 投票:0回答:1

以下代码可显示PNG图像,但不适用于JPG图像

GlideApp.with(playerBinding.ivLogoHomeTeam.context)
        .load("https://[email protected]")
        .into(playerBinding.ivLogoHomeTeam)

XML:

<de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/iv_logo_home_team"
                android:layout_width="@dimen/match_item_team_logo"
                android:layout_height="@dimen/match_item_team_logo"
                android:layout_marginStart="@dimen/unit_dp_10"
                android:layout_marginLeft="@dimen/unit_dp_10"
                android:layout_marginEnd="@dimen/unit_dp_10"
                android:layout_marginRight="@dimen/unit_dp_10"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:srcCompat="@drawable/ic_launcher_background" />

编辑:JPEG图像适用于HTTPS图像,而HTTP图像无效。我们如何分配HTTP图片?

android android-glide
1个回答
1
投票

这是Http权限问题。您应该为http请求添加以下内容。

<application
android:usesCleartextTraffic="true"

/>

有关详细信息,您可以看到我的这个answer

但是我也给出了如何在Glide中查找错误。首先,您可以使用Gilde debug option查找解决问题的信息。

如果可以访问设备,请运行此命令adb shell setprop log.tag.Glide DEBUG,它将记录成功和失败的请求,以及根据日志级别而不同的详细级别。您可以调用setLogLevel(int)设置级别。

您还可以使用侦听器查找异常错误。

Glide.with(fragment)
   .load(url)
   .listener(new RequestListener() {
       @Override
       boolean onLoadFailed(@Nullable GlideException e, Object model,    
         Log.e(TAG, "Load failed", e);
         return false; // Allow calling onLoadFailed on the Target.
       }

       @Override
       boolean onResourceReady(R resource, Object model, Target<R> target,
           DataSource dataSource, boolean isFirstResource) {
         // Log successes here or use DataSource to keep track of cache hits and misses.
         return false;
       }
    })
    .into(imageView);
© www.soinside.com 2019 - 2024. All rights reserved.