解析android的布局文件

项目要求在android里面动态加载插件.就是向客户端发送一个jar包,用来扩充或者更新应用.

要求jar包可以向用户提供独立的用户界面.就是说,jar包里的布局文件要单独解析成view了.

刚开始,还不是很有思路,看了看android的源码,解析布局文件真的是,,,有点麻烦啊...

翻翻论坛,国外论坛大多表示这个做不到,或者比较难,

最后在一个国内安卓的帖子里找到相关的文章,还有源码试例,看了看,得到点儿启示,开工.(那帖子随后贴上.)


大概思路如下:

无论如何,还是要去分析xml文件的内容的.一样用android提供的XmlPullParser来解析.

用XmlPullParser处理一直的xml布局文件,逐条获得布局文件中的布局类名.

通过类名来反射获得类的实例,于是我们就获得了view的实例.

然后,在依照布局文件中的各项属性,对已获得的view实例进行设置.

麻烦就在view的属性设置里了,父类View的属性有60多项,部分布局、子类控件的属性还要多些,要合理的安排,以避免重复的工作,同时还要提高效率。


思路到这里,接下来就是体力活了。

整体来看,并不难,首先从XmlPullParser开始分析xml就好。

根据分析得到view的实例后,就可以对view开始设置了。

最后,因为view的属性太多了,要合理安排算法(或者设计模式?)来提高效率和代码复用率。


解析的帖子 http://www.eoeandroid.com/thread-247266-1-1.html

遇到一些麻烦,style解析起来比较繁琐。另外,style不能在代码中设置,只能在xml中设置。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值