/ / Crear, almacenar e inflar un diseño personalizado en tiempo de ejecución: Android, diseño de Android, widget de Android, Android-xml

Cree, almacene e infle el diseño personalizado en tiempo de ejecución: android, android-layout, android-widget, android-xml

Estoy tratando de encontrar una solución para lo siguienteproblema. La aplicación en la que trabajo requiere una posibilidad para que el usuario produzca una interfaz de usuario personalizada (diseño de widgets simples) a través del generador de interfaz de usuario personalizado. Por lo tanto, el usuario puede apilar widgets (imágenes, principalmente. Pero TextViews y EditText también) en el lienzo, moverlos, etc. La interfaz de usuario debe almacenarse en una base de datos para su uso futuro. Por lo tanto, debería haber algún mecanismo para cargar e inflar esta interfaz de usuario. Este es el principal problema.

Mi primera idea fue confiar en Android estándarMecanismo de diseño. Desafortunadamente, LayoutInflater funciona con XML compilado en forma binaria. Y que yo sepa, no es posible compilar una cadena XML en representación binaria en tiempo de ejecución.

¿Alguien tiene experiencia con tal problema? ¿Alguna sugerencia?

Respuestas

2 para la respuesta № 1

Echa un vistazo a los métodos de inflado de LayoutInflater. En realidad puedes darle cualquier XmlPullParser para usar como fuente, que a su vez se puede construir dado cualquier Reader.

En otras palabras, puede usar casi cualquier secuencia de caracteres como fuente xml para inflar.

El comienzo de XmlPullParser docs le ofrece el esquema básico para crear el analizador de extracción:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader("<foo>Hello World!</foo>"));

Actualizar - esto no va a funcionar, como se menciona en el LayoutInflater docs