我正在为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之间更加一致!
答案 0 :(得分:1)
我发现了问题所在。原来我的诊断不正确。找到了资源,但是它是VectorDrawable
,并且decodeResource()
无法正确解码。
将VectorDrawable
转换为发布在this question中的Bitmap
的技术有效。