Как отображать изображения JPEG для URL, начинается с `http: //` с помощью Glide - PullRequest
0 голосов
/ 19 января 2020

Следующий код работает для отображения изображений PNG, но не работает для изображений JPG

GlideApp.with(playerBinding.ivLogoHomeTeam.context)
        .load("https://JPN-CR1@2x.png")
        .into(playerBinding.ivLogoHomeTeam)

XML:

<de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/iv_logo_home_team"
                android:layout_width="@dimen/match_item_team_logo"
                android:layout_height="@dimen/match_item_team_logo"
                android:layout_marginStart="@dimen/unit_dp_10"
                android:layout_marginLeft="@dimen/unit_dp_10"
                android:layout_marginEnd="@dimen/unit_dp_10"
                android:layout_marginRight="@dimen/unit_dp_10"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:srcCompat="@drawable/ic_launcher_background" />

РЕДАКТИРОВАТЬ: изображения JPEG работают для Изображения HTTPS, в то время как изображения HTTP не работают. Как мы отключаем изображения HTTP?

1 Ответ

1 голос
/ 19 января 2020

это проблема разрешения Http. Вы должны добавить следующее для http запроса.

<application
android:usesCleartextTraffic="true"

/>

для подробной информации, вы можете увидеть мой этот ответ .

, но я также даю, как найти ошибку в Glide. во-первых, вы можете использовать опцию Gilde отладки , чтобы найти информацию для решения проблемы.

Если у вас есть доступ к устройству, запустите эту команду adb shell setprop log.tag.Glide DEBUG, она зарегистрирует оба успешных и неудавшиеся запросы и различные уровни детализации в зависимости от уровня журнала. Вы можете позвонить setLogLevel(int), чтобы установить уровень.

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

Glide.with(fragment)
   .load(url)
   .listener(new RequestListener() {
       @Override
       boolean onLoadFailed(@Nullable GlideException e, Object model,    
         Log.e(TAG, "Load failed", e);
         return false; // Allow calling onLoadFailed on the Target.
       }

       @Override
       boolean onResourceReady(R resource, Object model, Target<R> target,
           DataSource dataSource, boolean isFirstResource) {
         // Log successes here or use DataSource to keep track of cache hits and misses.
         return false;
       }
    })
    .into(imageView);
...