8

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

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

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

4

1 回答 1

2

查看LayoutInflater的膨胀方法。您实际上可以给它 anyXmlPullParser用作它的源,而它又可以在给定 any 的情况下构造Reader

换句话说,您可以使用几乎任何字符流作为 xml 源进行膨胀。

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

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

更新LayoutInflater- 如文档中所述,这不起作用。

于 2011-04-05T14:53:07.297 回答