Custom Drawn Interface/Android/es

From Free Pascal wiki
Jump to navigationJump to search

English (en) español (es) 日本語 (ja) русский (ru)

Arquitectura

LCL-CustomDrawn-Android utiliza una aplicación Java mínima que se comunica con nuestra librería de Pascal y la envía todos los eventos, aceptando también mandatos. La comunicación se realiza vía JNI tal como es soportada por Google. Los controles no son nativos, en su lugar se dibujan utilizando TRawImage+TLazIntfImage+TLazCanvas mientras que los eventos y pintado se recorta utilizando LazRegions. El dibujado en si mismo es realizado utilizando jnigraphics para dibujar un objeto Bitmap de Java que es dibujado con una actividad mínima de Java en un SurfaceView.

Nuestros previos y poco durables intentos para escribir un Interface LCL para Android (LCL-Android) utilizaban un método no standar para usar ejecutables nativos mediante la comunicaión con Java a través de pipes. Este método finalmente se abandonó porque estaba considerado como no soportado porby Google. Se considera obsoleto y por tanto la gente debería utilizar en su lugar LCL-CustomDrawn-Android. Este antiguo interface se encuentra documentado en Android Interface.

Recorrido

Parte 1, hasta Marzo de 2012:

  1. Construye el conjunto de Lazarus Custom Drawn Controls.
  2. Bindings iniciales con las APIs de Android.
  3. Se crea una aplicación para generar automáticamente los bindings.
  4. Comienzo del nuevo conjunto de widgets.
  5. Implementa soporte para JNI.
  6. Fusiona los controles de Lazaus Custom dentro de LCL y los utiliza para implementar todos los controles básicos.
  7. Añade soporte de texto para Android.
  8. Implementa área de desplazamiento (scrolling) básico en la ventana cliente.
  9. Añade emulador móvil para plataformas de escritorio.
  10. Improve the mobile scrolling.
  11. Añade soporte de texto en X11.
  12. Add DPI awareness y adaptación en el LCL.
  13. Añade suporte de texto no nativo por medio de pasfreetype.

Parte 2: April, Mayo, Junio 2012:

  1. TButton afianza la presentación visual en Android.
  2. TBitBtn.
  3. TRadioButton finaliza el aspecto nativo.
  4. Calendar dialog -> Problemático debido a que LCL no tiene dialogo de calendario (calendar dialog), por lo que simplemente abre un formularo normal y sitúa un calendario en el mismo, se hace necesario un Widget (aplicativo simple) TCDCalendar.
  5. MaskEdit.
  6. Mejoras en TComboBox.
  7. TMemo.
  8. TListView como una lista con columnas.
  9. TMainMenu.
  10. Database con sqlite.
  11. Lectura de códigos de barras (Barcode).
  12. Instalador incorporado para Windows.