Jump to content

Stas

Members
  • Posts

    536
  • Joined

  • Last visited

  • Days Won

    75

Everything posted by Stas

  1. По крайне мере, я старался.
  2. Коллекция пополнилась Вашим . Я думаю, у все разные диалоги.
  3. А что такое, диалог по умолчанию? Я про него ничего не знаю, видел разные
  4. Этот classes.dex должен быть в deploy
  5. Сделал очень ректально. Но уже работает и не падает (я надеюсь) Хотел бы комментарии Ярослава. (Касательно таймеров) Спасибо BarcodeDetector.rar
  6. Уважаемые друзья, прежде всего хочу попросить у вас прощения, что не успел привести это в божеский вид, потому даю только наметки. Возможно у кого-то возникнут более разумные идеи , чтобы это работало как следует. Итак начинаем Прежде всего нам понадобится 1) Кнопка для начала сканирования 2)Мемо для отображения результатов 3) TfgVideoControl для показа действий с камерой. 4) Два маленьких литра коньяка Мы создаем имплементацию интерфейса type TDetector_Processor = class(TfgAndroidListener<TfgAndroidControl>,JDetector_Processor) public procedure receiveDetections(const AArg0: TJDetector_Detections); procedure release; end; procedure TDetector_Processor.receiveDetections( const AArg0: TJDetector_Detections); var J:TJSparseArray; B:TJBarcode; D:TDetector_Processor; begin J:=AArg0.getDetectedItems; if (J.size<>0) then begin D:=Self; B:=TJBarcode.Wrap(J.valueAt(0)); TThread.Synchronize(nil,procedure begin FormMain.fgMemo1.Lines.Text:=JStringToString(B.displayValue); end); end; end; procedure TDetector_Processor.release; begin ; end; Собственно говоря, он отвечает за распознавание штрих-кода. Далее при создании формы, нам необходимо создать этот объект processor:=TDetector_Processor.Create(TfgAndroidControl(TfgAndroidControlHandle(fgMemo1.Handle).NativeControl)); //Я не знаю, почему я так сделал На кнопку мы вешаем следующий код //Мы просим разрешения сканировать, и при получении оного пытаемся это делать. TfgPermissionService.RequestPermissionsAsync(['android.permission.CAMERA', 'android.permission.WRITE_EXTERNAL_STORAGE'], procedure(const APermissionInfo: TArray<TfgPermissionInfo>) begin case APermissionInfo[0].CheckResult of TPermissionCheckResult.Granted: begin DoScan; end else TfgToast.Show('Camera permission is not granted. Cannot scan barcode.', TfgToastDuration.Long); end; end); Теперь собственно, сама процедура procedure TFormMain.doScan; begin detector:=TJBarcodeDetector_Builder.Create(TfgAndroidHelper.Context).setBarcodeFormats(TJBarcode.ALL_FORMATS).build(); detector.setProcessor(processor); cameraSource:=TJCameraSource_Builder.Create(TfgAndroidHelper.Context,detector). setRequestedPreviewSize(1920, 1080).setAutoFocusEnabled(true).build(); cameraSource.start( TfgAndroidVideoControl(TfgAndroidControlHandle(fgVideoControl1.Handle).NativeControl).VideoView.getHolder()); end; Конечно про используемые модули. uses ...,Java.Bridge,FGX.Animation, FGX.Dialogs, FGX.Log,FGX.Helpers.Android,FGX.Image.Android,FGX.VideoControl.Android,Android.Api.ActivityAndView,FGX.Permissions,FGX.Toasts, И в interface Android.Api.PlayServices.Vision Благодарю за внимание, и прошу прощения, что так сумбурно.
  7. Пытаюсь привести в божеский вид Штрих-код киевской примы без фильтра я уже получил, осталось добиться нормальной остановки камеры Падаем-с. З.ы используется Google vision api
  8. Ну, что могу сказать, получилось. Библиотека Ярослава к этому готова Если это необходимо, постараюсь сегодня выложить пример.
  9. Ярослав, спасибо за развернутый ответ, я должен понимать принципы построения библиотеки. Конечно не имеет смысл добавлять общий метод.
  10. Виктор, это для чистоты и изящества кода, Вы же все равно используете TfgAndroidListener, что мешает, передавать в конструктор тип объекта, и вызывать один и тот же метод TfgMap З.Ы. Повторюсь, я не в претензии.
  11. Я знаю, Виктор, Но в GoogleMaps отсутствует и общий объект, наследниками которого являются полигоны полилинии и иже с ними в Fgx, просто это несколько странно, делать столько событий, когда можно обойтись одним. (бритва Оккама) Я не в претензии, мысли вслух.
  12. Это правильно и разумно, спасибо, в идеале хотелось бы автогенерации как в FMX, но настаивать на этом глупо, не все от вас зависит.
  13. OnTap<TfgMapObject> Де факто их можно было объединить в одно.
  14. Ярослав, а почему появилось столько событий, которые можно было не постулировать в таком количестве?
  15. Здравствуйте, проблема в том, что в распространяемый classes.dex Не вошли эти jar файлы посмотрите файл build.bat и поправьте путь к classes.dex fgx , У вас получится слитый classes.dex , который вы должны распространить вместо оригинального от fgx У меня это получилось только при помощи временной замены оригинального classes.dex fgx своим Ярослав обещал это исправить Да, и не забудьте про разрешения
  16. Виктор, он это не сможет скачать
  17. Так прежде всего большая благодарность автору сайта http://delphifmandroid.blogspot.com/ Без него бы ничего не получилось. А так же автору нативного примера на джаве,который был утянут с просторов интернета Ну и конечно Ярославу. В джаве я полный ламер, поэтому просьба не кидать тапками за плохой код. Пример сделан для fgx, но все нативные интерфейсы были сгенерированы для fmx. FGXFingerPrint.7z
  18. Добрый день. Расскажите, каким образом мне распространять собственный classes.dex? Я смикшировал оригинальный classes.dex из [FGX] со своим, но при развертывании он отказывается добавляться в APK Оригинальный classes.dex из [FGX] мне не удается отключить. Для проверки работоспособности я подменил classes.dex из [FGX] своим и все прошло на ура, но мне кажется, это не лучший метод. Спасибо.
  19. Ну, что могу сказать, на FMX получилось. Жизненно не хватает генератора оберток для FGX. Сразу скажу, сложно, долго и "не те ощущения" Спасибо Ярославу, за объяснение, как это делать в принципе. Необходимо использовать Java и подключение своих jar. Исходники свои, чужие, благодарности и комментарии выложу как приведу это хоть в какой-то божеский вид. Если конечно, это кому-то интересно.
  20. Здравствуйте, обнаружил неприятную особенность отрисовки текста. Охватило меня желание нарисовать текст в круге. procedure TFormMain.fgButton1Tap(Sender: TObject); var B:TfgBitmap; Sz:Integer; begin B:=TfgBitmap.Create; Sz:=128; B.Size:=Tsize.Create(Sz,Sz); B.Canvas.Fill.Color:=TAlphaColorRec.Green; B.Canvas.FillCircle(B.Size.cx/2,B.Size.cy/2,B.Size.cx/2); B.Canvas.Font.Size:=Sz/2; B.Canvas.Fill.Color := TAlphaColorRec.Red; B.Canvas.Fill.Kind := TfgBrushKind.Solid; B.Canvas.FillText(B.Bounds,'100',False); TfgAssetsManager.Current.AddBitmap('test',B); fgImage1.ImageName:='test'; end; И показать его на картинке. И не получилось Спасибо
  21. Ярослав, это говорит о широчайших возможностях Вашей библиотеки. Виталий, это говорит о Вашей разносторонности. Потому, спасибо Вам обоим.
  22. Добрый день, очень интересная ошибка При добавлении маркера при движении по карте procedure TFormMain.fgMap1CameraChanging(Sender: TObject); begin try fgMap1.AddMarker(fgMap1.CameraTarget,''); except on E:Exception do TfgDialogs.ShowMessage(E.Message); end; end; Происходит вот такое. Если сделать отложенное добавление через таймер, ошибки не происходит. Спасибо.
  23. Stas

    Меню

    От себя добавлю, добавьте TfgNavigator bar и у TfgDrawerLayout добавьте в свойство ToggleControl Его. Картинку с бигмаком спионерьте у material.io И добавьте в Asset Получится вот такое (у Вас, надеюсь будет лучше).
  24. Мне кажется, это не сложно. Три Layout c цифрами fgImage, fgLabel Layout c шестью кружочками.
×
×
  • Create New...