android: 静态XML和动态加载XML混合使用,以及重写Layout控件

十五天学会Autodesk Inventor,看完这一系列就够了(七),工程图纸 不管哪种绘图软件,二维或三维绘图,最终均需要转换成工程图纸,才能交给现场人员进行制作,这是任一产品图都要经历的过程。那本章开始,我们一起看一下Inventor是如何实现工程图纸? 阅读详情


原文:http://blog.youkuaiyun.com/lzx_bupt/article/details/5600187



近期对Android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件。程序目标无非是:高效、轻巧、清晰、标准化

 

完成动态加载Layout有两种方法,依据个人喜好进行选择:

 

方法1:静态主Layout动态加载静态子Layout

 

首先构建子Layout:main2

[xhtml]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!--布局可以任意定义,此处拿线性布局举例,里面有2个按钮元素-->  
  3. <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:id="@+id/menubar"   
  5.     android:background="@drawable/menubar"  
  6.     android:layout_width="wrap_content"   
  7.     android:layout_height="wrap_content">  
  8.         <!--按钮1-->  
  9.     <ImageButton android:id="@+id/button1"  
  10.         android:src="@drawable/btn1"  
  11.         android:layout_width="wrap_content"  
  12.         android:layout_height="wrap_content"  
  13.     ></ImageButton>  
  14.     <!--按钮2-->  
  15.     <ImageButton android:id="@+id/button2"  
  16.         android:src="@drawable/btn2"  
  17.         android:layout_width="wrap_content"  
  18.         android:layout_height="wrap_content"  
  19.     ></ImageButton>  
  20. </LinearLayout>  

 

然后构建主Layout:main

 

[xhtml]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/background"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:background="@drawable/background">  
  7.     <!--主Layout要给子Layout设置一个容器box,可以在此指定容器的位置,这段是关键部分-->  
  8.     <LinearLayout android:id="@+id/box"  
  9.         android:layout_alignParentBottom="true"  
  10.         android:layout_width="wrap_content"  
  11.         android:layout_height="wrap_content"  
  12.         android:layout_centerHorizontal="true">      
  13.     </LinearLayout>  
  14. </RelativeLayout>  

 

最后在程序中加载子layout:

[java]  view plain  copy
  1. public class BackgroundTest extends Activity {  
  2.     /** Called when the activity is first created. */  
  3. //      子Layout要以view的形式加入到主Layout中  
  4.     private View mBarView;  
  5. //      主Layout的容器加载子Layout的View  
  6.     private LinearLayout mLinearLayout;  
  7. //给出关键内容  
  8. public void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10. //      显示主Layout  
  11.         setContentView(R.layout.main);   
  12. //      加载子Layout         
  13.         mBarView = View.inflate(this, R.layout.main2, null);  
  14. //      找到容器  
  15.         mLinearLayout = (LinearLayout)findViewById(R.id.box);  
  16. //      加上View 结束  
  17.         mLinearLayout.addView(mBarView);  
  18. }  

 

 

方法2:静态主Layout动态加载动态的Layout

首先构造你自己的子Layout和上面一样;

然后构建你自定义的Layout类:

[java]  view plain  copy
  1. public class MenuLandscapeLinearLayout extends LinearLayout{   
  2. //  构造函数  
  3.     public MenuLandscapeLinearLayout(Context context) {  
  4.     super(context);  
  5.     // TODO Auto-generated constructor stub  
  6.     //加载需要的属性,加载方法一的子Layout  
  7.     ((Activity) getContext()).getLayoutInflater().inflate(R.layout.main2, this);   
  8.         //在此你可以封装很多方法   
  9.     }     
  10. }  

最后在程序中动态实例化并加载即可:

[java]  view plain  copy
  1. public class BackgroundTest extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     private LinearLayout mLinearLayout;  
  4.     //声明一个子Layout View对象  
  5.     private MenuLandscapeLinearLayout mMenuLandscapeLinearLayout;  
  6.     @Override  
  7.     public void onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9. //      加载主Layout  
  10.         setContentView(R.layout.main);    
  11. //      找到容器        
  12.         mLinearLayout = (LinearLayout)findViewById(R.id.box);  
  13. //      实例化一个子View  
  14.         mMenuLandscapeLinearLayout=new MenuLandscapeLinearLayout(this);  
  15. //      添加到容器  
  16.         mLinearLayout.addView(mMenuLandscapeLinearLayout);  
  17.     }  
  18. }  

至此,完成了动态加载子Layout的两种形式,里面可思考的很多,比如封装常用事件、资源,从而节省代码、节省资源;

抛砖引玉,分享经验,希望能助大家优化自己的程序。


Python程序—定子故障三相永磁同步电动机振动与电流数据集 1.0 kW 电机匝间短路故障数据: 正常匝间短路振动数据: 匝间短路故障,严重度为2.26%: 匝间短路故障,严重度为2.70%: 匝间短路故障,严重度为3.35%: 匝间短路故障,严重度为4.41%: 匝间短路故障,严重度为6.48%: 匝间短路故障,严重度为12.17%: 匝间短路故障,严重度为21.69%1.5 kW 电机匝间短路故障数据: 正常匝间短路振动数据: 匝间短路故障,严重度为1.57%: 匝间短路故障,严重度为1.88%: 匝间短路故障,严重度为2.34% 阅读详情

相关推荐

多思计算机组成原理实验:模型机课程设计

计算机组成原理实验教程 基于多思网络虚拟实验系统 张雯雰

Nick的博客 2万+

动态加载xml文件

点击追加按钮,添加一排控件 在原布局文件中定义一个LinearLayout,然后将所要添加的那一排控件写成一个xml,将这个xml通过代码插入到定义的那个LinearLayout中

程序猿成长之路 1119

TYPE-C接口电路设计篇(一)

常见USB接口类型 随着USB Type-C接口的推行,USB Type-C是一种通用串行总线(USB)的硬件接口形式,USB Type-C接口在消费类产品普及程度越来越高,常见的适配器、笔电、手机等产品都兼容USB Type-C设计,接口多元化逐渐趋向归一,从而可以看出USB Type-C的重要性。 在了解USB Type-C接口之前,我们先来回顾下USB Type-A和USB Type-B接口,USB3.0 Type-A和Type-B接口定义分别如下。 USB 3.0...

JWu的博客 3万+

Android App的插件化和动态加载框

携程Android App的插件化和动态加载框架已上线半年多,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验。本文将详细介绍Android平台插件式开发和动态加载技术的原理和实现细节,回顾携程Android App的架构演化过程,期望我们的经验能帮助到更多的Android工程师。

Robin Hu的专栏 7395

华为云Stack应急预案实战:从IaaS到PaaS的故障场景与恢复指南

本文详细解析华为云Stack应急预案在IaaS到PaaS层的故障场景与恢复实践,涵盖计算节点故障、存储链路中断等典型问题。通过标准化操作流程和实战案例,帮助企业在突发故障时快速恢复业务,确保高可用性。华为云Stack的应急预案体系经过金融、政务等严苛场景验证,恢复时间指标(RTO)控制在30分钟以内。

weixin_33724059的博客 373

软件破解逆向安全(一)初识内存地址和偏移

工具:CE 内存:数字->存访在电脑中->内存 实例:如何修改植物大战僵尸阳光 内存搜索最核心:过滤数据 先用CE加载植物大战僵尸,如下图 我们可以看到目前我们的阳光数是50,我们尝试在ce里搜索精确数值,4 byte是int整数的表示。 我们发现有很多数据,尝试收集一个阳光变成75再次搜索: 我们发现就一个了,这时我们可以双击Value随便修改阳光的数值了。 这里我们说一下动态和静态地址 动态地址:临时用于存放数据的地址,黑色。特征:重新启动游戏地..

weixin_43781139的博客 2595

android动态加入xml布局并设置id

效果演示 点击添加布局,并为布局中的EditView设置文本 代码实现 -动态加入布局 1.在activity_main.xml中加入按钮,并设置LinearLayout的id LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http

张旭的博客 1万+

深度学习二分类实战:用Python+Keras搞定基因表达数据预测(附完整代码)

本文详细介绍了如何使用Python和Keras构建深度学习模型进行基因表达数据的二分类预测。通过数据预处理、特征选择、神经网络构建及优化策略,特别针对小样本场景提供了调参技巧和模型解释方法。文章还包含完整的代码示例,帮助读者快速掌握深度学习在生物信息学中的应用。

weixin_30642561的博客 245

Android 中public.xml在SDK开发和动态加载的用法

本文介绍:Android 中public.xml在SDK开发和动态加载的用法: 解决问题: 1. 在开发SDK或者apk动态加载中,需要应用layout,drawable(图片,点击),dimen, string等等 2. apk动态加载(代码和资源隔离,dex动态加载),子apk发通知,调用了主应用的图标(原因:同志是系统发出来的,系统会找主应用的图标ID)

zhanghao_Hulk的专栏 2345

电路设计学习一:DAC/ADC原理

文章目录参考文献DAC基本原理DAC分类倒T型电阻网络权电流转换器DAC的性能指标分辨率转换速度ADC基本原理ADC分类ADC的性能指标ADC的位数分辨率基准源转换速率量化误差 参考文献 DAC数模转换/ADC模数转换 单片机 AD/DA数模转换 模数转换(A/D)与数模转换(D/A) DAC基本原理 DAC将输入的数字量按权的大小,通过电阻网络转化为模拟量,再通过加法电路,转换为与数字量成比例的模拟量。 实际上就是二进制转换为十进制的过程。 基本组成包括锁存器、电子开关、基准源、权电阻网络和求和电路。 锁

coin的博客 3万+

【自然语言处理】情感分析(一):基于 NLTK 的 Naive Bayes 实现

朴素贝叶斯(Naive Bayes)分类器可以用来确定输入文本属于某一组类别的概率。例如,预测评论是正面的还是负面的。它是 “朴素的”,它假设文本中的单词是独立的(但在现实的自然人类语言中,单词的顺序传达了上下文信息)。尽管有这些假设,但朴素贝叶斯在使用少量训练集预测类别时具有很高的准确性。

Data · Model · Agent · Repeat 2173

【Android开发学习44】android: 静态XML和动态加载XML混合使用,以及重写Layout控件

近期对android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件。程序目标无非是:高效、轻巧、清晰、标准化 完成动态加载Layout有两种方法,依据个人喜好进行选择: 方法1:静态主Layout动态加载静态子Layout 首先构建子Layout:main2 < LinearLayout xmlns:android = "http://schema

天 下 1097

【深度学习总结_02】在自己的数据集微调SAM

使用医疗影像数据微调SAM

qq_41234663的博客 1万+

转:android: 静态XML和动态加载XML混合使用,以及重写Layout控件

近期对android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件。程序目标无非是:高效、轻巧、清晰、标准化 完成动态加载Layout有两种方法,依据个人喜好进行选择: 方法1:静态主Layout动态加载静态子Layout 首先构建子Layout:main2   &lt;? xml version = "1.0" encoding = "utf-8" ?&...

jianjia1988的博客 237

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【Android开发学习44】android: 静态XML和动态加载XML混合使用,以及重写Layout控件...

近期对android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件。程序目标无非是:高效、轻巧、清晰、标准化 完成动态加载Layout有两种方法,依据个人喜好进行选择: 方法1:静态主Layout动态加载静态子Layout 首先构建子Layout:main2 &lt;? xml version = "1.0" encoding = "utf-8" ?&gt; ...

www.v5qq.com的技术博客 100

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 开发零起步学习笔记(十五):android: 静态XML和动态加载XML混合使用,以及重写Layout控件

原文在这:http://blog.youkuaiyun.com/lzx_bupt/article/details/5600187 近期对Android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件。程序目标无非是:高效、轻巧、清晰、标准化   完成动态加载Layout有两种方法,依据个人喜好进行选择:   方法1:静态主Layout动态加载静态子Lay

ingener的专栏 648

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

会动的遮罩!android_maskable_layout 动画遮罩(AnimationDrawable)实现原理与实战

android_maskable_layout 是一款轻量级的 Android 遮罩开源库,它用一个简单的 FrameLayout 就能让任意 View 或 ViewGroup 拥有圆形、星形,甚至是「会动的」动画遮罩。它的杀手锏是支持 AnimationDrawable 遮罩:遮罩轮廓像变魔术一样在圆形、星形、多边形之间平滑切换。本文从零拆解它的实现原理,并手把手带你完成一个动画遮罩实战案例,读

gitblog_00971的博客 233

安卓RelativeLayout实战:页面意图与布局关系的深度解析

Android布局系统本质是将页面交互意图映射为UI空间关系的技术体系。从FrameLayout的坐标原点、LinearLayout的线性流式、RelativeLayout的关系驱动,到ConstraintLayout的约束网络,不同布局引擎对应不同的测量复杂度与语义表达能力。RelativeLayout凭借`layout_above`、`layout_below`等直观属性,在TV端焦点导航、横竖屏适配、动态关系调整等场景中展现出不可替代的语义清晰性与低学习成本。其与Activity/Fragment的生

weixin_33946605的博客 438
上一篇: android 使用自定义画布
下一篇: 微信小程序01
xy%
xy%
博客等级 码龄11年 10粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值