我可以使用 Glide 来缓存图像而不显示它们吗
Can i use Glide to cache images without displaying them
我有一个 Feed 向我发送 logos
的列表
{
"logos": {
"GoogleLogo": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTEC8Plg0onmk5-0lHzN74023FJaH_N_4prUSlBBaUR9FqmjbfVhA"
}
}
此提要发送给我的徽标大约有 30 个。
我想做的是在用户第一次启动应用时点击这个服务,并使用Glide
缓存所有图片。
所以在应用程序中,每当我使用以下方法时,它都不会点击服务,并立即向用户显示图像。
GlideApp
.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
我将创建一个 HashMap<String, String>
,它将 logo name
作为键,它的 URL
作为值。
我的问题是,Glide 中是否有任何可用的方法可用于缓存图像而不显示它们。
是的,使用 FutureTarget 您可以在后台加载图像。
启动 Intent 服务并在 onHandleIntent
方法中加载图像。喜欢,
String data = intent.getStringExtra("data");
try {
JSONObject jsonObject = new JSONObject(data);
JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("res");
for (int i = 0; i < jsonArray.length(); i++) {
if (common.getNetworkType().equalsIgnoreCase("-")) {
stopSelf();
break;
} else {
JSONObject jObj = jsonArray.getJSONObject(i);
FutureTarget<File> future = Glide.with(this).load(common.completeURL(jObj.getString("AvatarImage"))).downloadOnly(400, 400);
try {
future.get();
break;
} catch (InterruptedException e) {
stopSelf();
break;
} catch (ExecutionException e) {
stopSelf();
break;
}
}
}
} catch (Exception e) {
stopSelf();
logger.w(TAG, "onHandleIntent: ", e);
}
我有一个 Feed 向我发送 logos
{
"logos": {
"GoogleLogo": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTEC8Plg0onmk5-0lHzN74023FJaH_N_4prUSlBBaUR9FqmjbfVhA"
}
}
此提要发送给我的徽标大约有 30 个。
我想做的是在用户第一次启动应用时点击这个服务,并使用Glide
缓存所有图片。
所以在应用程序中,每当我使用以下方法时,它都不会点击服务,并立即向用户显示图像。
GlideApp
.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
我将创建一个 HashMap<String, String>
,它将 logo name
作为键,它的 URL
作为值。
我的问题是,Glide 中是否有任何可用的方法可用于缓存图像而不显示它们。
是的,使用 FutureTarget 您可以在后台加载图像。
启动 Intent 服务并在 onHandleIntent
方法中加载图像。喜欢,
String data = intent.getStringExtra("data");
try {
JSONObject jsonObject = new JSONObject(data);
JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("res");
for (int i = 0; i < jsonArray.length(); i++) {
if (common.getNetworkType().equalsIgnoreCase("-")) {
stopSelf();
break;
} else {
JSONObject jObj = jsonArray.getJSONObject(i);
FutureTarget<File> future = Glide.with(this).load(common.completeURL(jObj.getString("AvatarImage"))).downloadOnly(400, 400);
try {
future.get();
break;
} catch (InterruptedException e) {
stopSelf();
break;
} catch (ExecutionException e) {
stopSelf();
break;
}
}
}
} catch (Exception e) {
stopSelf();
logger.w(TAG, "onHandleIntent: ", e);
}