当前位置:编程学习 > wap >>

android中如何动态的添加/删除布局及修改布局属性?

在项目中遇到一个问题,就是设计一个客户端,其布局文件由server下发(这些布局元素中包含视频、静态/动态文本、图片,且内容不固定),布局属性会隔一段时间会变化(包括坐标,显示区域,透明度)。请问如果在客户端运行之后一旦接受到新的布局文件当前布局随之改变? Android 布局 动态 多样化 --------------------编程问答-------------------- 自己顶一下,另外补充一下,所有的元素(视频、文本,图片)都是是在同一个界面显示 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 你这个要是实现了,那更新应用就不需要重新安装apk了
--------------------编程问答-------------------- 你的意思是动态的读取xml布局文件把?
这个还真没研究过,不知道可不可以。
你可以把要加入的元素写入xml,包括这个元素的一些属性,长宽高文本颜色之类的,然后在写入这个元素的layoutParmas。通过读取xml,利用反射在主layout中add这些view,并设置这些view的LayoutParmas。
这个已经类似于一种小型的框架了。 --------------------编程问答-------------------- 有一个笨办法,实在没辙再用
就是预先把所有用到的布局都设置好,根据接收到数据来显示或隐藏控件 --------------------编程问答-------------------- Lua用脚本,你可以查一下这方面的资料。 --------------------编程问答-------------------- ANDROID界面先用一个空的布局文件显示,
然后根据服务器传来的配置文件(不一定要是布局文件了,也可以是一个XML或HMTL文件,把规范定义好,客户端能理解就好)动态生成或调整界面元素。这样应该是可以的 --------------------编程问答-------------------- 控件不要在layout里面设置,在进应用的时候再根据所需的数据来在代码里面生成布局,这样就不用那么固定控件,不知道怎么样。 mLinearLayout = new LinearLayout();然后自己自layout里面addView(); --------------------编程问答-------------------- 打包apk的时候是混淆加密了,只替换部分配置文件貌似比较难做到。关注ing --------------------编程问答-------------------- 楼主,有进展否? --------------------编程问答--------------------
引用 8 楼 xiyang123_ 的回复:
控件不要在layout里面设置,在进应用的时候再根据所需的数据来在代码里面生成布局,这样就不用那么固定控件,不知道怎么样。 mLinearLayout = new LinearLayout();然后自己自layout里面addView();



这个可以有 --------------------编程问答-------------------- 同感。。。。 --------------------编程问答-------------------- 我觉得你还是做成网页,然后再应用里面嵌入一个WebView,用WebView显示服务端的网页比较省事儿 --------------------编程问答-------------------- 下发的是android layout xml文件吗?
如果是的话, 可以做一个空的ViewGroup作为根节点,用
LayoutInflater layoutInflater =
            (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(XmlPullParser parser, ViewGroup root);
这个方法

XmlPullParser parser = 指向你的xml文件

如果是自定义的布局文件, 那就和server确定好协议, 用json或者xml来交互数据, 并解析
在代码里动态new 控件,按协议来布局(可参考android layout xml的解析方法)

或者就做成网页,用ajax

--------------------编程问答-------------------- 用webview+hessian吧
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,