Android JNI в C ++ Builder

Я ищу использование Android JNI на C ++ Builder и увидел этот код:

   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. Мне не нужны рекомендации или что-то в этом роде, ни готовый код (говорю это, чтобы избежать суждений о том, что мой вопрос касается рекомендаций), но я хочу, чтобы что-то вроде этого кода помогло создать функцию.

PS: Я не нашел никакой документации по Android JNI.

# c++builder firemonkey rad-studio
Источник
Codelisting
за 0 против

Это выглядело бы примерно так:

_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);

Я не знаю, импортировал ли уже EmbarcaderoTJPrintHelper а такжеTJBitmapFactory классы (выполните команду Embarcadero'sAndroidapi... заголовочные файлы). Если нет, вы можете просто использовать Java2OP, чтобы импортировать их вручную.

Я не умею переводитьR.drawable.droids в инфраструктуру Embarcadero JNI.decodeResource() хочет целочисленный идентификатор ресурсаdroids изображение. Вам придется самому выследить его.

  • 0
    Я видел заголовочные файлы TJPrintHelper от Embarcadero, а TJPrintHelper там нет. Когда вы говорите «используйте Java2OP, чтобы импортировать их вручную», где я могу заставить TJPrintHelper сделать это?
  • 0
    @ Que44 Я никогда не использовал Java2OP, но он должен быть достаточно простым, чтобы просто указать ему импортировать класс androidx.print.PrintHelper, и он сгенерирует для вас класс TJPrintHelper
Codelisting
Популярные категории
На заметку программисту