gpt4 book ai didi

java - 为什么webp文件在aab中不显示?

转载 作者:行者123 更新时间:2023-12-02 08:44:13 25 4
gpt4 key购买 nike

当我将应用程序上传到 Google Console 并从 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 图像时,如果我加载它们。

最佳答案

我在 Android 开发者中搜索,发现了一些关于 Shrink 的内容。我读到的部分在下一个链接中 - 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 有兴趣帮助我。

关于java - 为什么webp文件在aab中不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61189265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com