Как установить volley android studio

Использование библиотеки Volley в Android на примере получения данных из погодного API

Каждому Android-разработчику рано или поздно приходится работать с сетью. В Android есть множество библиотек с открытым исходным кодом, таких как Retrofit, OkHttp или, например, Volley, на которой мы сегодня остановимся подробнее.

Итак, что же эта библиотека из себя представляет?

Volley — это HTTP-библиотека, которая упрощает и ускоряет работу в сети для приложений Android.
Код библиотеки на GitHub .

Итак, для начала работы с Volley нам необходимо добавить её в build.gradle(module:app):

Также необходимо добавить разрешение на использование интернета в манифесте нашего приложения:

Далее нам понадобится API. В данном туториале я воспользуюсь погодным API с сайта openweathermap.org/api .

Для начала создадим простую разметку для отображения данных, взятых из API (Application programming interface).

Далее заходим в MainActivity и создаем необходимые поля:

Инициализируем созданные поля поля в onCreate:

Теперь подходим к основной теме данного туториала — получение данных из API при помощи библиотеки Volley:

1) В MainActivity создаем метод GetWeather:


для приведения json’а в нормальный вид использован jsonformatter
Стоит заметить, что имена объектов должны быть записаны точно так же, как и в нашем API, иначе они просто не ‘достанутся’.

2) Создаем, непосредственно, метод setValues:

3) Вызываем методы getWeather() и setValues() в onCreate():

Источник

hitraj47 / AppController.java

Volley, Android Studio and Examples

This tutorial is really just some code snippets to show you how to use Volley in Android Studio for your Android project. The tutorial will show you how you can import Volley, an example of retrieving a JSON object and retrieving an image for use in a layout.

Files and Code Snippets

The code snippets that are references should be listed below, after this readme file.

Importing Volley into Android Studio

To import Volley into your project, you have to use a 3rd party mirror or the Volley library. However, it is only 1 line of code. Open your app/build.gradle and add the following dependency:

The first class you will need is a singleton that handles Volley requests. See the AppController code snippet.

Second, you will need an image cache, see the LruBitmapCache code snippet.

Getting a JSON Object or JSON Array

To retrieve a JSON Object, see the code example.

  • The code is very similar for JSON arrays
  • The TAG variable is just used for Logcat — the response is being made into a string and output into the Logcat console.
  • onReponse is where you would do what you need with the returned data

Displaying an Image in NetworkImageView

To display an image, in your layout, you will need a NetworkImageView. This is similar to an ImageView. See the NetworkImageView XML example.

Читайте также:  Антивирус для андроида samsung

The code to display an image in the NetworkImageView is:

NetworkImageView imageView = (NetworkImageView) findViewById(R.id.image); imageView.setImageUrl(«http://www.website.com/path/to/image.jpg», AppController.getInstance().getImageLoader());

If you would like to set placeholder and error images, see the Placeholder and Error Images code sample.

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

import android.app.Application ;
import android.text.TextUtils ;
import com.android.volley.Request ;
import com.android.volley.RequestQueue ;
import com.android.volley.toolbox.ImageLoader ;
import com.android.volley.toolbox.Volley ;
public class AppController extends Application <
public static final String TAG = AppController . class
.getSimpleName();
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private static AppController mInstance;
@Override
public void onCreate () <
super . onCreate();
mInstance = this ;
>
public static synchronized AppController getInstance () <
return mInstance;
>
public RequestQueue getRequestQueue () <
if (mRequestQueue == null ) <
mRequestQueue = Volley . newRequestQueue(getApplicationContext());
>
return mRequestQueue;
>
public ImageLoader getImageLoader () <
getRequestQueue();
if (mImageLoader == null ) <
mImageLoader = new ImageLoader ( this . mRequestQueue,
new LruBitmapCache ());
>
return this . mImageLoader;
>
public T > void addToRequestQueue ( Request T > req , String tag ) <
// set the default tag if tag is empty
req . setTag( TextUtils . isEmpty(tag) ? TAG : tag);
getRequestQueue() . add(req);
>
public T > void addToRequestQueue ( Request T > req ) <
req . setTag( TAG );
getRequestQueue() . add(req);
>
public void cancelPendingRequests ( Object tag ) <
if (mRequestQueue != null ) <
mRequestQueue . cancelAll(tag);
>
>
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

// Tag used to cancel the request
String tag_json_obj = » json_obj_req » ;
String url = » http://www.api.com/your/api/request » ;
final ProgressDialog pDialog = new ProgressDialog ( this );
pDialog . setMessage( » Loading. » );
pDialog . show();
JsonObjectRequest jsonObjReq = new JsonObjectRequest ( Request . Method . GET , url, null , new Response . Listener JSONObject > () <
@Override
public void onResponse ( JSONObject response ) <
Log . d( TAG , response . toString());
pDialog . hide();
>
>, new Response . ErrorListener () <
@Override
public void onErrorResponse ( VolleyError error ) <
VolleyLog . d( TAG , » Error: » + error . getMessage());
// hide the progress dialog
pDialog . hide();
>
>);
// Adding request to request queue
AppController . getInstance() . addToRequestQueue(jsonObjReq, tag_json_obj);

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

import android.graphics.Bitmap ;
import android.support.v4.util.LruCache ;
import com.android.volley.toolbox.ImageLoader.ImageCache ;
public class LruBitmapCache extends LruCache String , Bitmap > implements
ImageCache <
public static int getDefaultLruCacheSize () <
final int maxMemory = ( int ) ( Runtime . getRuntime() . maxMemory() / 1024 );
final int cacheSize = maxMemory / 8 ;
return cacheSize;
>
public LruBitmapCache () <
this (getDefaultLruCacheSize());
>
public LruBitmapCache ( int sizeInKiloBytes ) <
super (sizeInKiloBytes);
>
@Override
protected int sizeOf ( String key , Bitmap value ) <
return value . getRowBytes() * value . getHeight() / 1024 ;
>
@Override
public Bitmap getBitmap ( String url ) <
return get(url);
>
@Override
public void putBitmap ( String url , Bitmap bitmap ) <
put(url, bitmap);
>
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Читайте также:  Firefox about config android не открывается
com .android.volley.toolbox.NetworkImageView
android : id = » @+id/image «
android : layout_width = » wrap_content «
android : layout_height = » wrap_content «
android : layout_alignParentTop = » true «
android : layout_centerHorizontal = » true »/>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

NetworkImageView imageView = ( NetworkImageView ) findViewById( R . id . image);
ImageLoader imageLoader = AppController . getInstance() . getImageLoader();
imageLoader . get( » http://www.website.com/path/to/image.jpg » , ImageLoader . getImageListener(imageView, R . drawable . ico_loading, R . drawable . ico_error));

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

Лучший способ включить Volley (или другую библиотеку) в проект Android Studio

Я видел разные советы по наилучшему способу сделать это Этот вопрос охватывает создание банки. В другом месте, я видел совет, чтобы просто скопировать источник залпа в ваш собственный проект. Этот раздел в библиотеках на android.com выглядит наиболее авторитетным. Однако после компиляции волейбола у меня нет библиотеки aal, тогда как в этом разделе сказано, что я должен был.

Итак, мой вопрос: у меня есть существующий проект Android Studio со стандартным макетом и репозиторий git; что я должен сделать, чтобы добавить залп? Где я должен скачать его? Как добавить его в Android Studio? Какие файлы Gradle, если есть, мне нужно изменить.

Надеюсь, для тех из вас, кто сделал это несколько раз, это должно быть хлебное масло, но я не смог найти простого описания.

Обновление, на предложение Скотта Барты.

Файл gradle.build в репозитории волейбола имеет эту строку.

Согласно документации: “Проекты библиотеки не генерируют APK, они генерируют пакет .aar(который представляет собой архив Android).” Однако, когда я создаю проект волейбола, не создается .aar.

Я чувствую, что, поскольку Volley – это проект библиотеки, созданный командой Android, скорее всего, он предназначен для создания и использования в качестве пакета .aar. Любые советы о том, было бы предпочтительнее генерировать .aar и как это сделать, будут оценены.

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ:

Используйте официальную версию из jCenter вместо этого.

Зависимости ниже указывают на устаревший залп, который больше не поддерживается.

ОРИГИНАЛЬНЫЙ ОТВЕТ

Вы можете использовать это в разделе зависимости вашего файла build.gradle для использования volley

ОБНОВЛЕНО:

Не официальная, а зеркальная копия официального Volley. Он регулярно синхронизируется и обновляется официальным репозиторием Volley, поэтому вы можете использовать его без каких-либо проблем.

Добавьте эту строку в свои зависимости gradle для волейбола:

Чтобы установить залп из источника, прочитайте ниже:

Мне нравится держать официальный репозиторий в моем приложении. Таким образом, я получаю это из официального источника и могу получать обновления, не зависимо от кого-либо, и смягчать проблемы, выраженные другими людьми.

Читайте также:  Android hide the toolbar

Добавлен залп как субмодуль рядом с приложением.

В моих настройках .gradle добавлена ​​следующая строка, чтобы добавить залп в качестве модуля.

В моем приложении /build.gradle я добавил зависимость компиляции для проекта волейбола

Это все! Теперь волейбол можно использовать в моем проекте.

Каждый раз, когда я хочу синхронизировать модуль волейбола с репо Google, я запускаю его.

В настоящее время

Много разных способов сделать это за день (исходный ответ)

Добавить volley.jar в качестве библиотеки

Использовать исходные файлы из git (более ручной/общий способ, описанный здесь)

  • Загрузите/установите клиент git (если он еще не установлен в вашей системе): http://git-scm.com/downloads
    (или через git clone https://github.com/git/git … sry плохой, но не смог устоять ^^)
  • Выполнить git clone https://android.googlesource.com/platform/frameworks/volley
  • Скопируйте папку com из [path_where_you_typed_git_clone]/volley/src в ваши проекты app/src/main/java (вместо этого интегрируйте ее, если у вас уже есть папка com!!; -))

Файлы сразу появляются в Android Studio. Для Eclipse вам нужно right-click в папке src и сначала нажать refresh (или F5 ).

Используйте gradle через “неофициальное” зеркало maven

В файле проекта src/build.gradle добавьте следующую зависимость зала:

Нажмите Try Again , который должен сразу появиться в верхней части файла, или просто Build , если не

Основным “преимуществом” здесь является то, что это позволит обновить версию для вас, тогда как в двух других случаях вам придется вручную обновлять залп.

В “нижней части” это официально не из Google, а в стороннее еженедельное зеркало.

Но оба эти пункта действительно соответствуют тому, что вам нужно/нужно.
Также, если вы не хотите обновлений, просто поместите туда желаемую версию, например, например. compile ‘com.mcxiaoke.volley:library:1.0.7’ .

На сегодняшний день в JCenter есть официальная версия Volley, размещенная на Android, которая находится в JCenter:

Это было скомпилировано из исходного кода волейбола AOSP.

СТАРЫЙ ОТВЕТ:
Вам нужно следующее в вашем build.gradle вашего модуля приложения:

Это не официальное репо, а очень надежное.

Для включения залпа в андроид-студию,

Обратитесь к разработчику Android для этого.

Он создаст имя папки volley в каталоге src.

  • Затем перейдите в студию android и щелкните правой кнопкой мыши по проекту.
  • выберите “Создать” → “Модуль” в списке.
  • Затем нажмите на импорт существующего проекта из приведенного ниже списка.
  • вы увидите область ввода текста, а именно исходную директорию, просмотрите папку, которую вы загрузили (залп), а затем нажмите “Готово”.
  • вы увидите волейбол папки в своем представлении проекта.

    переключитесь на Android-представление и откройте файл сборки: gradle (Module: app) и добавьте следующую строку в области зависимостей:

    compile ‘com.mcxiaoke.volley: library-aar: 1.0.0’

    Теперь синхронизируйте свой проект, а также создайте свой проект.

    Я создал Volley как отдельный проект. Таким образом, он не привязан к какому-либо проекту и существует независимо.

    У меня также есть настройка сервера Nexus (внутренняя репо), поэтому я могу получить доступ к волейболу
    compile ‘com.mycompany.volley: volley: 1.0.4’ в любом проекте, который мне нужен.

    Всякий раз, когда я обновляю проект Volley, мне просто нужно изменить номер версии в других проектах.

    Источник

  • Оцените статью