Как преобразовать код значка Openweathermap в реальное изображение - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужна помощь в преобразовании значка OpenWeatherMap в фактическое изображение PNG.

До сих пор я извлек код значка (iconName) в текстовое представление, а также создал строку для полного URL-адреса изображения (iconUrl)..

String iconName = JSONWeather.getString("icon");
String iconUrl = JSONWeather.getString(IMG_URL + iconName +".png");

Но я изо всех сил пытаюсь вставить этот URL-адрес в представление изображения.

Полученная ошибка:

E / Utils: Проблема с разбором землетрясенияРезультаты JSON org.json.JSONException: Нет значения для https://openweathermap.org/img/w/04n.png

Я видел, что здесь можно использовать Пикассо, но ниже приведен код, показывающий для меня viewHolder на красном, и я не знаю, что нужно добавить врешить эту проблему.

Picasso.with(viewHolder.itemView.getContext()).load(iconUrl).into(viewHolder.condIcon)



<ImageView
        android:id="@+id/condIcon"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
       />


   ImageView iconView =  findViewById(R.id.condIcon);
        iconView.setImageURI(Uri.parse(earthquake.iconUrl));

1 Ответ

0 голосов
/ 27 ноября 2018

решена!Чтобы упомянуть, мое приложение состоит из 3 классов: Utils, MainActivity и Event.

Прежде всего, в Utils.java анализ вашего значка JSON:

 /**URL for the icons location at OpenWeatherMap*/
    public static final String IMG_URL = "https://openweathermap.org/img/w/";

 //Retrieve icon code from website
                String iconName = JSONWeather.getString("icon");

Во-вторых, в Event.java add:

вверху

public final String iconName;

и класс

 public Event(.....String eventIconName)
{ .......
     iconName=eventIconName;
      }

В-третьих, в MainActivity.java добавить вид изображения и ссылку на Пикассо :

//Convert icon code from the OpenWeatherMap website into the image and insert into the ImageView. Path consists of URL declared in Utils.java, and @param iconName, declared in Event.java.
// JSON parser method used in Utils.java class retrieves icon code from OpenWeatherMap (iconName), .png extension is added.

    ImageView iconView =  findViewById(R.id.condIcon);
    Picasso.with(this).load(IMG_URL + weather.iconName +".png").into(iconView);

Честно говоря, я потратил 2 дня, чтобы понять это.Надеюсь, это будет полезно для других людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...