gpt4 book ai didi

android - 加载用户创建的布局

转载 作者:太空狗 更新时间:2023-10-29 16:12:41 24 4
gpt4 key购买 nike

我正在尝试加载用户创建的 XML 文件以在我的应用中使用它。我知道不可能将 XML 文件用作资源,因为布局文件是在构建 APK 过程中编译的。有没有在布局文件夹之外即时使用/创建/加载布局的方法?

最佳答案

您不能扩充任意 XML,因为 Android 项目中的 XML 文件会在构建时进行处理并转换为二进制格式。换句话说,您只能使用 Java API 以编程方式构建布局。

您可以做的是使用标准 XML 解析器(例如 XmlPullParser)解析用户文件并自己构建 View 。基本上您将重新实现 LayoutInflater,您可以找到源代码在线代码。

需要注意的一件事是用户的 XML 根本无法引用资源。例如,他们不能做像 android:textColor="@color/some_color" 这样的事情。构建处理将此类引用转换为指向资源值的指针,而如果您只是简单地以纯 XML 格式读取它,它只会是文本 "@color/some_color"

也许您不应该允许用户创建成熟的 Android 布局 XML,而应该选择您将支持的有限子集,并定义一种更简单的方式来描述这些自定义布局。那么您就不必使用 XML,您可以只用您想要的东西来定义自定义“语言”。这样你就可以限制用户使用相对简单的 API,比如文本颜色;您只需将自定义语言中定义的某些字段映射到对 textView.setTextColor() 的调用即可。

关于android - 加载用户创建的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40962211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com