2017-08-03 21 views
19

Chcę użyć biblioteki Android Glide, aby pobrać obraz i pokazać go w ImageView.Glide-4.0.0 Brakujący symbol zastępczy, błąd, GlideApp

w poprzedniej wersji użyliśmy:

Glide.with(mContext).load(imgUrl) 
       .thumbnail(0.5f) 
       .placeholder(R.drawable.PLACEHOLDER_IMAGE_NAME) 
       .error(R.drawable.ERROR_IMAGE_NAME) 
       .crossFade() 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .into(imageView); 

Ale widziałem dokumentację Glide:

it says use GlideApp.with() instead Glide.with()

moje obawy brakuje zastępczy, błąd, GlideApp i inne opcje.

Używam

compile 'com.github.bumptech.glide:glide:4.0.0' 

Gdzie robię źle? z numerem here

w jaki sposób użyto GlideApp.with()?

Interfejs API jest generowany w tym samym pakiecie co AppGlideModule i domyślnie nosi nazwę GlideApp. Aplikacje mogą korzystać z API uruchamiając wszystkie ładunki z GlideApp.with() zamiast Glide.with():

GlideApp.with(fragment) 
    .load(myUrl) 
    .placeholder(placeholder) 
    .fitCenter() 
    .into(imageView); 
+1

Możliwy duplikat [zastępczym/błąd/Fallback w Glide v4] (https://stackoverflow.com/questions/45187661/placeholder-error-fallback-in-glide-v4) –

+2

Czy masz pojęcia o GlideApp? jak używać i kiedy używać? .. jeśli nie, upvote –

+0

brakuje kroku 2 sprawdź to: http://bumptech.github.io/glide/doc/generatedapi.html –

Odpowiedz

41

Spróbuj korzystanie RequestOptions

RequestOptions requestOptions = new RequestOptions(); 
requestOptions.placeholder(R.drawable.ic_placeholder); 
requestOptions.error(R.drawable.ic_error); 

Glide.with(context) 
    .setDefaultRequestOptions(requestOptions) 
    .load(url).into(holder.imageView); 

EDIT

if.setDefaultRequestOptions(requestOptions)method is not work than use.apply(requestOptions)

Glide.with(MainActivity.this) 
      .load(url) 
      .apply(requestOptions) 
      .into(imageview); 
// or this 
Glide.with(MainActivity.this) 
      .load(url) 
      .apply(new RequestOptions().placeholder(R.drawable.booked_circle).error(R.drawable.booked_circle)) 
      .into(imageview); 
+0

Czy mogę znać powód głosowania w dół –

+0

, który oddał głos ... nie wiem ... jak to sprawdzić? przy okazji jego 0 ponownie przez przegrywanie mnie .. :) –

+0

, że ja również nie wiem @RiteshBhavsar jego działanie w moim urządzeniu z nowym Glide lib możesz to sprawdzić –

5

Jeśli chcesz użyć GlideApp trzeba dodać do dependencies procesor adnotacji jak na zrzucie

how to add GlideApp to your project

następnie obejmować realizację AppGlideModule w aplikacji:

@GlideModule 
public final class MyAppGlideModule extends AppGlideModule {} 

nie zapomnij o @GlideModule adnotacja. Następnie trzeba utworzyć projekt. I GlideApp zostanie wygenerowany automatycznie. Mam nadzieję, że to nadal będzie pomocne.

+0

To nie działa po gradacji synchronizacji. Ale musimy zrobić odbudowę, aby to działało. –

+0

działa..dzięki. –

11

Jeśli używasz pakietu Glide Dependences compile 'com.github.bumptech.glide:glide:3.7.0' niż użytku poniższym kodzie

GlideApp 
    .with(your context) 
    .load(url) 
    .centerCrop() 
    .placeholder(R.drawable.loading_image) 
    .error(R.drawable.error_image) 
    .into(myImageView); 

Note: As in doc

Round Pictures: CircleImageView/CircularImageView/RoundedImageView are known to have issues with TransitionDrawable (.crossFade() with .thumbnail() or .placeholder()) and animated GIFs, use a BitmapTransformation (.circleCrop() will be available in v4) or .dontAnimate() to fix the issue.

najnowsza aktualizacja wersji compile com.github.bumptech.glide:glide:4.1.1 niż skorzystać z poniższego kodu

Glide.with(this) 
    .load(url) 
    .apply(new RequestOptions() 
       .placeholder(R.mipmap.ic_loading_image) 
       .centerCrop() 
       .dontAnimate() 
       .dontTransform()) 
    .into(imageView); 

See Latest version of glide, Bug fixes, Features

1

zależności

compile 'com.github.bumptech.glide:glide:4.1.1' 
annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1' 

dodać odpowiednio uwagami realizację AppGlideModule

import com.bumptech.glide.annotation.GlideModule; 
import com.bumptech.glide.module.AppGlideModule; 


@GlideModule 
public final class MyAppGlideModule extends AppGlideModule{} 

Ponadto, jeśli użyto opcji jack, w celu uniknięcia podobnych następujące błędy, trzeba użyć Android Studio 3.0.0 podgląd.

Error:Execution failed for task ':app:transformJackWithJackForDebug'. com.android.jack.ir.JNodeInternalError: java.lang.Exception: java.lang.AssertionError: No yet implemented

Powiązane problemy