近期,根据部门要求,对Android进行研究,由于商业级开发,讲究方便快速开发,并且有很高的可维护性和可扩展性,所以我想着需要将代码进行封装(例如:列表展示功能,仅仅给列定义和数据来源,其他都自动生成),但是安卓提供了界面编辑器,他的界面都是通过XML来描述的,虽然这种方式虽然挺好,但是却不好封装,所以我开始研究如何使用纯代码方式完成页面
注意:这里绝对不是说界面编辑器不好,我觉得通过研究纯代码化界面编程可以使得编码更加快速,更加好封装
对于我目前来说,主要使用三种布局LinearLayout,TableLayout,FrameLayout,下面是一些使用示例,供大家参考
注意:下面出现的this就是activity,实质上就是context
1.LinearLayout:最常用的布局,内容按序摆放
// 定义总布局,流式布局
LinearLayout managerLinearLayout = new LinearLayout(this);
// 设置布局的一些属性
LinearLayout.LayoutParams managerLinearLayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
// 设置居中
managerLinearLayoutParams.gravity = Gravity.CENTER;
// 设置和外部的距离
managerLinearLayoutParams.setMargins(10, 10, 10, 10);
managerLinearLayout.setLayoutParams(managerLinearLayoutParams);
// 设置布局样式为纵列
managerLinearLayout.setOrientation(LinearLayout.VERTICAL);
// 设置内容填充
managerLinearLayout.setPadding(0, 10, 0, 0);
// 设置背景图片,图片放置在assets中
managerLinearLayout.setBackgroundDrawable(Drawable.createFromStream(getAssets().open("images/background/background_red.jpg"), ""));
2.FrameLayout:用于存在内容重叠的情况
// 定义用户头像布局,这里存在一张背景,一张用户头像图片叠放在一起
FrameLayout userHeadLayout = new FrameLayout(this);
userHeadLayout.setPadding(30, 40, 10, 0);
// 定义用户头像背景图片
ImageView userHeadBgImage = new KmfImageView(this, "images/user_head_bg.png");
KmfImageView userHeadDefaultImage = new KmfImageView(this, "images/user_head_default.png");
userHeadDefaultImage.setDefaultSize();
userHeadDefaultImage.setPadding(5, 5, 0, 0);
userHeadLayout.addView(userHeadBgImage);
userHeadLayout.addView(userHeadDefaultImage);
3.TableLayout:用于表格存放控件的情况
TableLayout tableLayout = new TableLayout(this);
//创建行
TableRow row1 = new TableRow(this);
TextView view1 = new TextView(this);
view1.setText("测试文本1:");
row1.addView(view1);
TableRow row2 = new TableRow(this);
TextView view2 = new TextView(this);
view1.setText("测试文本2:");
row2.addView(view2);
tableLayout.addView(row1);
tableLayout.addView(row2);
关于布局嵌套
由于这些界面都继承自View,所以可以直接使用他们的addView方法进行嵌套,例如上面代码中的三个布局,可以做以下的操作
managerLinearLayout.addView(userHeadLayout);
//将布局直接添加到TableLayout中,而不是新建TableRow添加
tableLayout.addView(managerLinearLayout);
关于布局暂时就写到这里吧,至于另外几种布局,我暂时还没怎么研究,等以后研究更深了,再补上来
分享到:
相关推荐
《Android编码规范_v0》是针对Android开发人员的一份详细指南,旨在提高代码质量、可读性和团队协作效率。这份规范涵盖了多个方面,包括命名规则、注释规范、代码结构、异常处理、性能优化以及最佳实践等。以下是对...
标题中的“Xinche.rar_android 小车_android 蓝牙_蓝牙_蓝牙串口 源代码_蓝牙串口android”表明这是一个关于Android应用程序的项目,主要功能是通过蓝牙连接控制小车运行。这个应用可能包含了一个蓝牙串口通信模块,...
"Android代码的String硬编码抽取"是一个重要的优化实践,旨在提高代码的可维护性和可扩展性。 首先,硬编码的String可能导致资源无法统一管理和复用,当需要修改或添加新的语言版本时,开发者需要手动遍历所有源...
在Android Studio中,还可以使用颜色选择器工具,通过可视化方式选择颜色并自动生成相应的颜色代码。 总结来说,Android开发中的颜色编码涉及到HTML颜色代码、RGB/ARGB值,以及在XML和代码中如何使用这些颜色。理解...
"android代码风格包"就是这样一个资源,它提供了统一的编码规范和格式化设置,使得开发人员可以遵循一套一致的规则进行编程,从而提升整个项目的质量。 首先,Android代码风格通常遵循Google提供的Android ...
在Android应用开发中,布局文件(layout files)通常包含了界面元素的定义,这些元素的属性可能包含硬编码的字符串,例如按钮的文本、提示信息等。硬编码的字符串虽然简单直接,但会带来一些问题,比如多语言支持、...
1. **代码高亮的重要性**: - 提升阅读体验:通过颜色区分关键字、变量、注释等,使代码更易读。 - 加快代码审查:高亮能快速识别错误和潜在问题,比如未定义的变量或不匹配的括号。 - 提高开发效率:色彩区分让...
6. **第三方插件和扩展**:可能包含了各种开发者常用的第三方工具,如用于图形化布局编辑的Layout Inspector,或者性能分析工具如Systrace。 7. **文档和示例代码**:为了帮助开发者更好地理解和使用这些工具,可能...
【Order订餐案例】是一个基于Android Studio开发的项目,它模拟了在线订餐的应用场景,让...开发者可以通过此案例深入学习Android应用的完整开发流程,从需求分析、设计、编码到测试和部署,全方位提升自己的技术能力。
3. **编码**:使用Java或Kotlin等语言编写应用代码,并使用XML定义界面布局。 4. **构建与调试**:通过SDK中的构建工具编译代码,然后使用ADB连接设备或AVD进行调试。 5. **测试**:使用JUnit或 Espresso进行单元...
在Android开发中,创建软件界面是一项关键任务,无论是简单的单个按钮还是复杂的布局设计,都需要开发者具备扎实的编码技能。本篇文章将详细讲解如何通过纯代码方式来实现Android应用程序的界面构建,以此来应对各种...
SDK提供MapView类用于展示地图,通过XML布局或代码动态创建。可以自定义地图样式,如地图类型(普通、卫星、地形)、缩放级别、中心点等。 4. **定位功能** 百度地图SDK提供了强大的定位功能,包括单次定位和持续...
- 调整代码风格以符合Android Studio的编码规范。 6. **调试与测试** - 在Android Studio中运行项目,检查是否有编译错误或运行时问题。 - 使用Android Studio的调试工具进行测试,确保所有功能正常运行。 7. *...
《ArcGIS_API_for_Android_案例教程.pdf》这份文档会更详细地介绍每个步骤,包括示例代码和实践项目,帮助开发者从基础到进阶全面了解和运用ArcGIS API for Android。 通过以上内容,你应该对ArcGIS API for ...
在编码实践中,Android Studio作为集成开发环境(IDE)提供了丰富的工具支持,包括代码自动完成、调试器和模拟器等,帮助开发者高效地编写和测试代码。 总之,“Android记事本程序代码”项目涵盖了Android应用开发...
2. **Android Buildozer**:Buildozer是Kivy项目的一部分,是一个自动化的打包工具,用于将Python应用打包成Android或iOS的原生应用。使用Buildozer,开发者无需深入理解Android SDK或Xcode,即可轻松地创建APK文件...
接下来,我们需要在布局XML文件中添加MapView控件,并在对应的Activity中初始化。通过设置MapView的属性,可以控制地图的显示,如初始位置、缩放级别等。同时,我们可以通过MapFragment或SupportMapFragment(对于...
在Android开发中,布局别名(Layout Aliases)是一种实用的技术,它可以帮助开发者更高效地管理应用程序的界面布局,尤其是在处理屏幕适配问题时。本文将深入探讨布局别名的概念、用途以及如何在实际项目中应用。 #...
标题提到的“Android-一个根据布局文件自动生成findViewById代码的android studio插件”正是为了实现这一目的。 这个插件名为FindViewHelper,它简化了Android开发中的UI元素绑定。通过分析XML布局文件,...
在Android开发中,百分比布局(Percent Layout)是Android Support Library的一个重要组成部分,它为开发者提供了在不同尺寸屏幕间保持布局比例一致的能力。这个库特别适用于创建响应式设计,使得应用能在不同分辨率...