2016-09-07 2 views
-2

Я читал довольно много на эту тему, но до сих пор не совсем ясно. На данный момент я создаю приложение, загружая изображение и текст на один экран. Для загрузки изображений я выбрал Glide, но где это самое подходящее место для их чтения? Все обучающие материалы, которые я прошел, пропускают URL-адрес изображения. Разве это не медленнее при загрузке из сети? Большое спасибо!Где нужно хранить изображения и приложение для Android?

+0

вы можете использовать фреску, Picasso, nestrol imageloader для изображений кэша –

+0

Glide является хорошим инструментом для загрузки изображений, первый раз его будет медленно загружаться, но с следующего раза он будет загружаться быстрее, чем в предыдущий раз, он будет кэшировать изображения. Если вы хотите реализовать технологию кэширования, вы можете использовать кеш LRU – Hanuman

ответ

2

Если вас интересует apk size, тогда не помещайте эти изображения static. Вместо этого вы можете хранить эти изображения на server (ваш или бесплатный сервер) и легко загружать эти изображения с помощью библиотек, таких как Glide или Picasso.

Разве это не медленнее при загрузке из сети?

Нет. Он будет загружать изображение один раз и затем кэшировать его для использования в будущем. Так что это очень быстро.

Если вы думаете, что apk size не имеет значения для вас, и пользователь не должен сталкиваться с проблемой из-за недоступности Интернета, вы можете сохранить эти изображения статичными внутри приложения.

+0

@ user6456773 проверить мой отредактированный ответ. – Nikhil

+0

Большое спасибо за объяснение, indramurari! Можете ли вы дать мне пример для бесплатного сервера, где я могу хранить изображения? – user6456773

+0

@ user645677 вы можете хранить изображения на [aws-сервере] (aws.amazon.com/webapps) или [imgur] (imgur.com/) и т. Д. Существует множество бесплатных хостинг-серверов. Вы получите его и в Google. – Nikhil

1

Если вы хотите создать приложение, которое использует динамические изображения, или вы хотите обновить свои изображения, не обновляя приложение, лучше получить их с сервера. И в моем опере picasso прост в использовании и прямолинейности. Также использует собственное кэширование. Но если вы думаете, что ваши изображения не изменятся, поместите их в папку с ресурсами, чтобы они находились во внутренней памяти приложения. Получение их с сервера имеет свои недостатки, как если бы вы использовали образы замещающих, потому что они не будут немедленно восстановлены.

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); 
          } 
         }); 
        } 
       }); 
+0

Большое спасибо за фрагмент кода, а также за пояснения, перейдя в Picasso :) – user6456773