为什么webp文件没有显示在aab中?

问题描述 投票:0回答:1

[当我将我的应用程序上载到Google控制台并从Play商店下载它时,未显示webp格式的图像,但是在我的虚拟设备中可以看到它们。这是在我的虚拟电话中:

enter image description here

在Google Play中,我得到了:

enter image description here

我的适配器加载图像的代码如下:

public void bind(final FruitList fruitList, final OnItemClickListener listener) {
        Glide.with(context).load(loadImage(fruitList.getFruitPicture())).into(fruitImage);
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                listener.onItemClick(fruitList, getAdapterPosition());
            }
        });
    }

private int loadImage(String mImageName) {
    return context.getResources().getIdentifier(mImageName, "drawable", context.getPackageName());
}

在我的数据库中,我只有图像的名称,而在我的Adapter类的loadImage方法中,我得到了整数。有趣的是,当我直接在ImageView中使用webp图像时,如果将它们加载。

java android android-studio webp
1个回答
1
投票

我正在Android开发人员中进行搜索,我找到了有关缩水的时间。我阅读的部分在下一个链接中-https://developer.android.com/studio/build/shrink-code#strict-reference-checks

但是总的说来,Shrink将忽略您不使用的所有资源或代码,因此我创建了一种动态生成字符串的方法,在这种情况下,我生成了图片的名称,因此Shrink忽略了我所有的图片,因为我从未使用过它,也从未在代码或布局中调用它。

因此,Android的建议说,我需要使用String.format来生成我的动态字符串。

Java中的方法是下一个:

String name = String.format("img_%1d", angle + 1);
res = getResources().getIdentifier(name, "drawable", getPackageName());

就我而言,我通过以下方式使用它:

private int loadImage(String mImageName) {
    String newName = String.format("if_%1$s", mImageName.substring(3, mImageName.length()));
    return context.getResources().getIdentifier(newName, "drawable", context.getPackageName());
}

仅此而已,效果很好。感谢Mike和Nagvadiya Vishal对帮助我感兴趣。

© www.soinside.com 2019 - 2024. All rights reserved.