当前位置: 首页 > 知识库问答 >
问题:

Android-WhatsApp:贴纸不显示

尹乐邦
2023-03-14

为了构建一个贴纸应用程序,我遵循以下指南:https://github.com/whatsapp/stickers/tree/master/Android

一切都很好(包括将贴纸添加到whatsapp),除了一件事:包细节视图(sticker_pack_details.xml)中没有显示webp贴纸。

我正在像这样更改贴纸文件的加载位置

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);
}

*如这里所述:https://github.com/whatsapp/stickers/blob/master/android/readme.md#expose-files-that-are-internal-as-stickers-trans-contentprovider

共有1个答案

殷德本
2023-03-14

我让它工作了!!

所有的功劳都归功于梅基姆:他对自己答案的评论为我指明了正确的方向

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;

    //Instead of this:
    //android.net.Uri stickerURI = android.net.Uri.parse(filename);

    //I had to do this:
    java.io.File file = new java.io.File(filename);
    android.net.Uri stickerURI = android.net.Uri.fromFile(file);

    stickerPreviewViewHolder.stickerPreviewView.setImageURI(stickerURI);
}
 类似资料:
  • 那么,有没有办法导出所有贴纸或者解密文件呢?

  • 我使用WhatsApp/stickers示例应用程序创建了一个贴纸包,并想知道是否有一种方法可以跟踪主WhatsApp应用程序中的单个贴纸使用事件(如果有人在对话中使用了贴纸)。我使用MS App Center SDK收集分析,但内置事件只提供有关安装的信息。

  • 我在android Studio中为WhatsApp创建了一个贴纸应用程序。目前,它正在工作,但所有的贴纸都放在项目文件夹内。问题是,如果我添加更多的贴纸,它会增加的大小。现在我想保存firebase上的所有贴纸,让用户实时下载。这项功能已经在Stickify Store应用程序中实现,该应用程序可以在play Store上获得

  • 这是从我的项目中创建的json文件 我是不是漏掉了什么?FD应该在这里添加哪个字段?谁能帮我解决这个问题。任何帮助都将不胜感激。谢谢。

  • 问题内容: 我想对特定用户进行WhatsApp呼叫。我试过了,但不起作用: 我知道如何创建WhatsApp消息,代码相似并且有效: 问题答案: 一个简单的解决方法是,查询ContactContract.Data的_id和MIME类型。 输出将如下所示 12561雪vnd.android.cursor.item / vnd.com.whatsapp.profile 12562雪vnd.android

  • 问题内容: 在1.5.5.3123版本的机盖上运行 Folium版本:0.1.2,内部版本:1 下面的代码; 退货 但没有别的。 如何在ipython笔记本中显示地图? 问题答案: 我发现iPythonNotebooks中有关Folium的本教程很有帮助。您创建的原始Folium实例不足以让iPython显示地图- 您需要做更多的工作才能获得一些iPython可以渲染的HTML。 要在iPytho