如何使用 Glide 以 `http://` 显示 url 的 JPEG 图像
How to display JPEG images for url starts with `http://` using Glide
以下代码适用于显示 PNG 图片,但不适用于 JPG 图片
GlideApp.with(playerBinding.ivLogoHomeTeam.context)
.load("https://JPN-CR1@2x.png")
.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 图像?
是Http
权限问题。您应该为 http 请求添加以下内容。
<application
android:usesCleartextTraffic="true"
/>
详细可以看我这个.
但我也给出了如何在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);
以下代码适用于显示 PNG 图片,但不适用于 JPG 图片
GlideApp.with(playerBinding.ivLogoHomeTeam.context)
.load("https://JPN-CR1@2x.png")
.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 图像?
是Http
权限问题。您应该为 http 请求添加以下内容。
<application
android:usesCleartextTraffic="true"
/>
详细可以看我这个
但我也给出了如何在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);