我已经在这个主题上阅读了很多,但仍然不太清楚。目前我正在创建一个应用程序,在一个屏幕上加载图像和文本。为了加载图像,我选择了Glide,但是最适合阅读的地方在哪里?我通过的所有教程都传递了图片的URL。从网上装载时它不是很慢吗?非常感谢!
答案 0 :(得分:2)
如果您关心$ mix run --no-halt
16:08:17.771 [info] Starting the SubscriptionManager.
16:08:17.776 [info] SubscriptionManagerServer init(). State: {{2016, 9, 7}, {10, 38, 17}} interval: 1000
16:08:18.780 [info] SubscriptionManager handle_info(). new_state: {{2016, 9, 7}, {10, 38, 18}}
16:08:19.780 [info] SubscriptionManager handle_info(). new_state: {{2016, 9, 7}, {10, 38, 19}}
16:08:20.784 [info] SubscriptionManager handle_info(). new_state: {{2016, 9, 7}, {10, 38, 20}}
16:08:21.784 [info] SubscriptionManager handle_info(). new_state: {{2016, 9, 7}, {10, 38, 21}}
16:08:22.782 [info] SubscriptionManager handle_info(). new_state: {{2016, 9, 7}, {10, 38, 22}}
^C
,请不要放置这些图片apk size
。相反,您可以将这些图片保留在static
(您的免费服务器)上,并使用server
或Glide
等库轻松加载这些图片。
从网上装载时它不是很慢吗?
没有。它将下载图像一次,然后将其缓存以备将来使用。所以它非常快。
如果您认为Picasso
对您不重要,并且用户不应因互联网不可用而面临问题,那么您可以将这些图片保持在应用程序内部静态。
答案 1 :(得分:1)
如果您想构建一个使用动态图片的应用程序,或者您希望在不更新应用程序的情况下更新图像,那么从服务器获取它们会更好。在我的观点中,毕加索易于使用且简单明了。还使用它自己的框架缓存。但是如果您认为您的图像不会改变,请将它们放在资产文件夹中,以便它们位于应用程序的内部存储器中。从服务器获取它们的缺点是你需要使用占位符图像,因为它们不会立即被检索。
答案 2 :(得分:1)
如果您希望图像始终来自网络,则必须使用缓存机制。我遵循的系统是这样的:(PS。我使用毕加索,快速可靠):
Picasso.with(this).load(URL).networkPolicy(NetworkPolicy.OFFLINE). //load from cache first time
into(imageView, new Callback() { //Picasso Callback
@Override
public void onSuccess() {
if(isNetworkAvailable()) { // if network available then update the cache for this URL
Picasso.with(MyActivity.this).invalidate(URL);
}
progress.setVisibility(View.GONE); // Progressbar
}
@Override
public void onError() { // Image not loaded, try again one last time
Picasso.with(MyActivity.this).load(URL).into(imageView, new Callback() {
@Override
public void onSuccess() {
progress.setVisibility(View.GONE);
}
@Override
public void onError() {
progress.setVisibility(View.GONE);
}
});
}
});