【发布时间】:2019-05-10 07:58:10
【问题描述】:
我正在按照本指南构建贴纸应用程序: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()*,因此贴纸是从内部存储而不是资产中获取的。
【问题讨论】: