理论问题:在Android中加载外部XML-Layout文件

时间:2011-07-04 20:52:11

标签: android xml xml-layout

我认为出于安全原因可能不太可能,但只是想确定:是否可以从外部XML文件在Android中创建布局?

确切地说:我正在远程服务器上使用XSL创建XML输出。我可以直接在服务器上创建必要的布局,然后将其下载到我的Android应用程序。

5 个答案:

答案 0 :(得分:6)

这是不可能的。 Android中的XML布局不存储为XML。出于性能原因,它们在编译期间进行预处理并以二进制形式存储,而布局inflater只能理解二进制形式而不是xml。

答案 1 :(得分:3)

当然你可以在运行时创建动态视图,而我并不是真的,这是最好的解决方案。如果你看一下Android的内部结构,那么每个通过XML创建的View都会被一个带有两个参数的构造函数调用:Context和 - 对你来说更有趣 - 一个AttributeSet。我认为你在解析它时有很多工作,同时跟踪正确的格式。 您至少可以根据服务器输出设置值并在Java中自己构建视图。

答案 2 :(得分:1)

是的,现在可以使用ItsNat Droid,看看:

https://groups.google.com/forum/#!topic/itsnat/13nl0P12J_s

它仍处于重大发展阶段,但最重要的功能已经实施。

答案 3 :(得分:0)

这是可能的,但我找到了只加载简单布局的方法:

Resources resources=context.getPackageManager().getResourcesForApplication(targetPackage);
int resID = resources.getIdentifier("widget_layout" , "layout", TARGET_PACKAGE);
XmlResourceParser parser = resources.getLayout(resID);
View themeLayout = LayoutInflater.from(this).inflate(parser, null);

答案 4 :(得分:-1)

也许inflate function of the LayoutInflator适合您。

编辑:似乎无法正常工作。