首页 > 解决方案 > 使用来自 NativeScript 插件的 Android 原生图像

问题描述

我正在为 Stripe 库编写一个 NativeScript 插件。在 Android 上,我不知道如何将原生库中的资源 ID 转换为可绘制图像。

我进行的其中一个调用返回从 R.drawable.xxx 获得的 ID。该图像位于本机库的资源中。我想把它变成我可以使用标签绘制的图像。

我试过这段代码:

import { android as androidApp } from "application";
let res = ...; // obtained from native library
let image = android.graphics.BitmapFactory.decodeResource(
  androidApp.foregroundActivity.getResources(),
  res);

decodeResource()返回null。本机库能够绘制相同的图像,因此资源以某种方式进入应用程序。我只是不知道如何从我的代码中访问它。

注意:在 iOS 上,同样的调用返回一个 UIImage,它工作正常。我希望 Stripe 在他们的 iOS 和 Android API 之间更加一致!

标签: androidnativescriptnativescript-plugin

解决方案


我解决了这个问题。原来我的诊断是不正确的。正在找到资源,但它是一个VectorDrawable并且decodeResource()无法正确解码它。

将 a 转换为此问题中发布的VectorDrawablea的技术有效。Bitmap


推荐阅读