Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to add the Placeholder for Imageview in Custom GlideModule #1078

Closed
mssaravanan opened this issue Mar 21, 2016 · 7 comments
Closed

How to add the Placeholder for Imageview in Custom GlideModule #1078

mssaravanan opened this issue Mar 21, 2016 · 7 comments

Comments

@mssaravanan
Copy link

Glide Version: 4.0.0-SNAPSHOT

Integration libraries: compile 'com.github.bumptech.glide:okhttp3-integration:2.0.0-SNAPSHOT'

Device/Android Version:Nexus5

Issue details / Repro steps / Use case background:

How to use the place holder image and error image for my Image view and how to set the image to imageview using DrawableRequestBuilder

@TWiStErRob
Copy link
Collaborator

Not sure if this is what you ask:

Glide.with(...)
.load(stuff)
.placeholder(R.drawable.loading)
.error(R.drawable.failed)
.fallback(R.drawable.input_was_null)
.into(imageView);

@TWiStErRob
Copy link
Collaborator

Reading it again: you cannot pass another Glide request to these methods, see #262

@mssaravanan
Copy link
Author

Thanks TWiStErRob , I'm getting error while implement the custom Glide module

I have implement Glide module

public class GbGlideModule implements GlideModule {
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        RequestOptions requestOptions =new RequestOptions();
        requestOptions.placeholder(R.drawable.image_placeholder);
        builder.setDefaultRequestOptions(requestOptions);

        // todo
    }

    @Override
    public void registerComponents(Context context, Registry registry) {

    }
}

In myAdapter class ,

Glide.with(activity).load(logo.getLogoPath()).into(h.all_Logo);

Logcat :

java.lang.IllegalArgumentException: Unable to find GlideModule implementation
            at com.bumptech.glide.module.ManifestParser.parseModule(ManifestParser.java:46)
            at com.bumptech.glide.module.ManifestParser.parse(ManifestParser.java:30)
            at com.bumptech.glide.Glide.get(Glide.java:148)
            at com.bumptech.glide.RequestManager.<init>(RequestManager.java:75)
            at com.bumptech.glide.manager.RequestManagerRetriever.fragmentGet(RequestManagerRetriever.java:189)
            at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:141)
            at com.bumptech.glide.Glide.with(Glide.java:423)
            at com.giveback360.adapter.OfferAllDealsAdapter.onBindViewHolder(OfferAllDealsAdapter.java:176)
            at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5217)
            at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5250)
            at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4487)
            at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363)
            at com.giveback360.utils.CustomLayoutManager.measureScrapChild(CustomLayoutManager.java:63)
            at com.giveback360.utils.CustomLayoutManager.onMeasure(CustomLayoutManager.java:34)
            at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2563)
            at android.view.View.measure(View.java:17586)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5543)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17586)
            at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1260)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
            at android.widget.ScrollView.onMeasure(ScrollView.java:337)
            at android.view.View.measure(View.java:17586)
            at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1489)
            at android.view.View.measure(View.java:17586)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5543)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
            at android.view.View.measure(View.java:17586)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5543)
            at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:610)
            at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:78)
            at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1132)
            at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:675)
            at android.view.View.measure(View.java:17586)
            at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:940)
            at android.view.View.measure(View.java:17586)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5543)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
            at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
            at android.view.View.measure(View.java:17586)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5543)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17586)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5543)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
            at android.view.View.measure(View.java:17586)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5543)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.meas

Manifest :

 <meta-data
            android:name="com.logo.utils.GbGlideModule"
            android:value="GlideModule" />

Proguard :

-keep public class * implements com.bumptech.glide.module.GlideModule
-keepnames class * com.logo.utils.GbGlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

@TWiStErRob TWiStErRob added the v4 label Mar 21, 2016
@TWiStErRob
Copy link
Collaborator

Are you sure you got the fully qualified name of the module right? Other classes seem to be in com.giveback360.utils in the stack trace. Try to catch this exception in your bind method and log yourself ex.getCause() because this stacktrace is clipped.

I just noticed you use v4... so you want a central placeholder.

@mssaravanan
Copy link
Author

Hi @TWiStErRob Thanks ...
Sorry , I have added Two GlideModule wrongly in my manifest. Now I have fix the issue

@TWiStErRob
Copy link
Collaborator

Do the centralized RequestOptions.placeholder work as you expected?

@stale
Copy link

stale bot commented Nov 12, 2017

This issue has been automatically marked as stale because it has not had activity in the last seven days. It will be closed if no further activity occurs within the next seven days. Thank you for your contributions.

@stale stale bot added the stale label Nov 12, 2017
@stale stale bot closed this as completed Nov 19, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants