使用NativeScript插件中的Android本机图像

时间:2018-09-17 16:23:32

标签: android nativescript nativescript-plugin

我正在为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,该UIImage正常工作。我希望Stripe在他们的iOS和Android API之间更加一致!

1 个答案:

答案 0 :(得分:1)

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

VectorDrawable转换为发布在this question中的Bitmap的技术有效。