【问题标题】:Load placeholder images using Glide - Android使用 Glide 加载占位符图像 - Android
【发布时间】:2021-07-10 13:57:03
【问题描述】:

我有一个ViewPager,它使用自定义适配器。这些项目是带有标题文本 (TextView title)、标题下方的一些文本 (TextView desc) 以及它们上方的 ImageView 的卡片。图像通过 Glide 库从 DB 加载。它可以工作,图像已成功加载,但在第一次加载图像时,卡片显示为空 - 即使没有文字。有没有办法在加载数据库中的图像时在ImageView 中显示带有文本和一些背景图像的这张卡片?

抱歉,如果我的问题看起来很愚蠢,我是第一次使用 Glide。 ViewPager适配器代码:

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, final int position) {
    LayoutInflater layoutInflater = LayoutInflater.from(context);

    // init root view (our 'card')
    View view = layoutInflater.inflate(R.layout.vp_item, container, false);

    // some code..

    title.setText( events.get(position).getTitle() );
    desc.setText( events.get(position).getDesc() );

    // filling UI elements with data
    Glide.with(context)
            .load(events.get(position).getImageUrl())
            .apply(new RequestOptions().override(800, 600))
            .transition(DrawableTransitionOptions.withCrossFade())
            .into(imageView);

    // some code..

    container.addView(view, 0);

    return view;
}

【问题讨论】:

    标签: android android-viewpager android-glide


    【解决方案1】:

    您需要使用 Glide 提供的占位符功能如下:

    Glide.with(context)
                .load(events.get(position).getImageUrl())
                .placeholder(R.drawable.placeholder_image) /// add this
                .apply(new RequestOptions().override(800, 600))
                .transition(DrawableTransitionOptions.withCrossFade())
                .into(imageView);
    

    【讨论】:

    • 是的,这解决了问题。谢谢,没想到这么简单
    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多