android - 使用来自 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 之间更加一致!
解决方案
我解决了这个问题。原来我的诊断是不正确的。正在找到资源,但它是一个VectorDrawable
并且decodeResource()
无法正确解码它。
将 a 转换为此问题中发布的VectorDrawable
a的技术有效。Bitmap
推荐阅读
- node.js - 获取 TypeError: t.filter 不是在 Heroku 中部署应用程序时的函数
- 3d - HOOPS Web 平台上的客户端渲染是否有最低硬件要求?
- python - 如何在networkx中使用检测社区
- javascript - 无法在组条形图 d3js v6 中显示标签
- qt - 如何在另一个对话框中使用在 qt 中创建的设备和 QCanBusDevice?
- javascript - Vuejs onMounted vs watch ref
- firebase-realtime-database - 在 firebase 中,如何从 ESP 8266 创建用户并在用户对象中添加数据?
- rest - 如何格式化 PowerQuery OData.Feed 中的 headers 参数?
- java - 如何轻松找到哪些端点调用了方法?
- laravel - 使用 GET 方法进行请求验证在 Laravel 8 中不起作用 - Recaptcha