我正在按照本指南制作贴纸应用程序:https://github.com/WhatsApp/stickers/tree/master/Android
我正以不同的方式做的是从网络服务而不是从资产获取json,托盘图像和贴纸文件 .
一切都很好(包括添加贴纸到whatsapp)除了一件事:webp贴纸没有显示在包详细视图中( sticker_pack_details.xml
) .
我正在改变像这样加载贴纸文件的地方
StickerPreviewAdapter.java
public void onBindViewHolder(@NonNull final StickerPreviewViewHolder stickerPreviewViewHolder, final int i)}
{
stickerPreviewViewHolder.stickerPreviewView.setImageResource(errorResource);
//stickerPreviewViewHolder.stickerPreviewView.setImageURI(StickerPackLoader.getStickerAssetUri(stickerPack.identifier, stickerPack.getStickers().get(i).imageFileName));
String filename = "/data/user/0/com.example.samplestickerapp/files/" + stickerPack.identifier + "/" + stickerPack.getStickers().get(i).imageFileName;
android.net.Uri stickerURI = android.net.Uri.parse(filename);
stickerPreviewViewHolder.stickerPreviewView.setImageURI(stickerURI);
}
注释行从资产中获取贴纸,但我已更改它,以便从内部存储中抓取贴纸 .
我错过了什么或看错了地方吗?
我还从 StickerContentProvider.java 更改了 readContentFile()
和 fetchFile()
*,因此贴纸是从内部存储而不是资产中获取的 .
1 回答
我有它的工作!
所有的功劳都归于Meikiem:他的答案中的comments指向了我正确的方向