Я следую этому руководству для создания приложения наклеек: 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);
}
Строка с комментариями выбирает стикеры из ресурсов, но я изменилчтобы стикеры были извлечены из внутреннего хранилища.
Я что-то упустил или смотрю не в том месте?
Я также изменил readContentFile()
и fetchFile()
* с StickerContentProvider.java , поэтому стикер извлекается из внутреннего хранилища, а не из ресурсов.
*, как указано здесь: https://github.com/WhatsApp/stickers/blob/master/Android/README.md#expose-files-that-are-stored-internally-as-stickers-through-contentprovider