【问题标题】:How to get the thumbnail of an Android gallery picture, in NativeScript?如何在 NativeScript 中获取 Android 画廊图片的缩略图?
【发布时间】:2019-06-27 14:49:01
【问题描述】:

我了解 Android 会自动为相机拍摄的每张照片创建一个缩略图。我需要能够显示该缩略图。

我正在使用 nativescript-imagepicker 插件来选择图像。该插件仅返回所选图像的大小和 src,例如:

'/storage/emulated/0/DCIM/DSCF2060.jpg'

我如何使用这个 src 来检索相应的缩略图(甚至可能吗?)。

Android API 让我很困惑(更不用说 Java),因此我们将不胜感激。

【问题讨论】:

  • 插件不支持,你需要查询MediaStore来获取缩略图。
  • Manoj,你能给我一些指导吗?我几乎不明白这个 API 发生了什么。例如这个短语:“媒体提供者和应用程序之间的合同。包含支持的 URI 和列的定义。”...
  • 当我检查插件时,我了解到从媒体商店中提取缩略图可能是不可能的,因为插件不返回内容 uri,而只是返回图像资产。您可以使用缩略图工具创建缩略图。

标签: android nativescript


【解决方案1】:

使用ThumbnailUtils

export function onGetImageButtonTap(args) {
    let context = imagepicker.create({
        mode: "single"
    });
    context
        .authorize()
        .then(function () {
            return context.present();
        })
        .then(function (selection) {
            selection.forEach(function (selected) {
                const size = layout.toDevicePixels(96);
                const bitmap = android.media.ThumbnailUtils.extractThumbnail(android.graphics.BitmapFactory.decodeFile(selected.android),
                    size, size);
                args.object.page.getViewById("thumbnailImg").src = fromNativeSource(bitmap);
            });
        }).catch(function (e) {
            console.log(e)
        });
}

Playground Sample

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多