android – 在运行时创建,存储和膨胀自定义布局

我正在尝试找到解决以下问题的方法.我工作的应用程序要求用户通过自定义UI构建器生成自定义UI(简单小部件的布局).因此,用户可以在画布上堆叠小部件(大多数是图像.但TextViews和EditText),移动它们等等.
UI必须存储在数据库中以备将来使用.因此,应该有一些加载和膨胀此UI的机制.这是主要问题.

我的第一个想法是依靠标准的Android布局机制.不幸的是,LayoutInflater使用XML编译成二进制形式.据我所知,在运行时将XML字符串编译成二进制表示是不可能的.

有没有人遇到过这样的问题?有什么建议?

解决方法

查看 LayoutInflater的膨胀方法.你实际上可以给它任何XmlPullParser作为它的来源,而后者可以在给定任何Reader的情况下构建.

换句话说,您可以使用几乎任何字符流作为xml源进行充气.

XmlPullParser文档的开头为您提供了创建拉解析器的基本概要:

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

更新 – 这不会起作用,如LayoutInflater文档中所述.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...