firemonkey - C++ Builder 中的 Android JNI
问题描述
我正在寻找在 C++ Builder 上使用 Android JNI,我看到了这段代码:
private void doPhotoPrint() {
PrintHelper photoPrinter = new PrintHelper(getActivity());
photoPrinter.setScaleMode(PrintHelper.SCALE_MODE_FIT);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.droids);
photoPrinter.printBitmap("droids.jpg - test print", bitmap);
}
这是用于打印(在热敏打印机中)位图的 Java 代码,我需要在 C++ Builder 中使用它,但我不知道如何转换它。intents
我看到了JNI 甚至 JNI做的其他事情。我不想要建议或其他东西,也不需要完成的代码(这样说是为了避免判断我的问题是针对建议的),但我想要类似这段代码的东西来帮助创建一个函数。
PS:我没有找到任何关于 Android JNI 的文档。
解决方案
它看起来像这样:
_di_JPrintHelper photoPrinter = TJPrintHelper::JavaClass->init(TAndroidHelper::Activity);
photoPrinter->setScaleMode(TJPrintHelper::JavaClass->SCALE_MODE_FIT);
_di_JBitmap bitmap = TJBitmapFactory::JavaClass->decodeResource(TAndroidHelper::Context->getResources(), /*R.drawable.droids*/...);
photoPrinter->printBitmap(StringToJString("droids.jpg - test print"), bitmap);
我不知道 Embarcadero 是否已经导入了TJPrintHelper
和TJBitmapFactory
类(对 Embarcadero 的Androidapi...
头文件做一个 grep)。如果没有,您可以简单地使用Java2OP手动导入它们。
我不知道如何翻译R.drawable.droids
成 Embarcadero 的 JNI 框架。decodeResource()
想要droids
图像的整数资源 ID。你将不得不自己追踪那个。
推荐阅读
- amazon-web-services - 购买 AWS 预留实例时如何选择区域/可用区?
- web - 须藤 npm 安装 webpack -g
- javascript - 如何在 PrestaShop 1.7 中使用 javascript 更改当前产品封面照片
- jquery - 仅在 navbar-collapse 显示时使引导导航栏保持粘性
- python - 在图像视图上移动十字准线时刷新的图像损坏
- r - R - Bootstrap CI 覆盖属性的编码函数
- java - 使用 Skutypes Azure-sdk-for-java 创建问题 VMSS
- c# - 在 .net core 2.1 中调用时,带有连接字符串的系统环境变量返回空值
- r - 用于生成多个 PNG 图的单个脚本
- java - 如果 object.values 使用 Java 8 非空,如何将对象添加到现有数组