近期,根据部门要求,对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 Camera添加水印,编码的时候增加水印,任何APP拍照或录像有水印
该资料是《Android高级编程》的源代码 对应的书籍资料见: Android高级编程 基本信息 原书名: Professional Android Application Development 原出版社: Wrox 作者: (英)Reto Meier 译者: 王鹏杰 霍建同 出版社...
NavigationBar ...我的视频课程(编码直播推流):《Android视频编码和直播推流》 标题导航栏,两三句代码即可实现 博客地址:http://blog.csdn.net/ywl5320/article/details/51866799 XML布局: 实例图片: ...
该文档是《阿里巴巴...该文档面向Android开发所有成员,旨在规范化代码风格和编程习惯,并提出了针对软件调优的建议。其中包括Android资源文件命名与使用、Android基本组件、UI与布局、进程、线程与消息等方面的内容
我的视频课程(编码直播推流):《Android视频编码和直播推流》 支付密码框,和微信支付宝类似 博客地址:http://blog.csdn.net/ywl5320/article/details/52003691 一、效果图: 二、设置代码 xml布局: java代码:...
第1章 Android计算平台简介 1.1 面向新PC的全新平台 1.2 Android的历史 1.3 Dalvik VM剖析 1.4 理解Android软件栈 1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 ...
04_开发与运行(卸载)第一个ANDROID应用.avi 所在项目:Hello 06_电话拔号器.avi 所在项目:phone 08_短信发送器.avi 所在项目:sms 09_深入了解各种布局技术.avi 所在项目:sms & FrameLayout 10_对应用进行单元...
android游戏java源码Tic_Tac_Toe 井字游戏无与伦比的游戏。 这款井字游戏是使用Android Studio开发的,Android Studio是Google Android操作系统的官方集成开发环境,专为Android开发而设计。 游戏本身允许两个人...
其实在Android中,使用控件除了在layout下的布局文件中实现之外,我们还可以通过在java文件中完全通过编码来实现,只不过完全使用编码的方式来驾驭我们的控件是不可取的,因为这增加了代码量,对外阅读不是太友好,...
Android SDK tools included in Android 1.1 SDK, Release 1. Supported Supported Supported Supported Operating Operating Operating Operating Systems Systems Systems Systems • Windows XP (32-bit) or ...
RecyclerView是一个大家常用的列表控件,在列表中不免会出现多种类型的布局,这时adapter中多种类型的判断就会充满着switch的坏味道,可怕的是需求变更,增加或修改新的类型时,所有的改动都在adapter中进行,没有一...
初步推断是学生作品,包括安卓客户端源码spring_hibernate服务端源码和mysql数据库,有简单的信息浏览和信息搜索和用户资料布局,不过很多地方不完善,客户端使用android开发,UI一般,服务端主要用了Spring ...
Android UI界面开发教程_什么安卓APP界面都有_棒 amr语音编码解码 Fragment View WebView 触摸 手势操作 抽象布局 屏幕解锁 照相机,相册 菜单 代码安全 通信安全 屏幕自适应分辨率 Action Bar HTML的javascript调用...
一个界面设计方面的例子,Android仿QQ微信登录界面效果,主要是基于对布局main.xml上控件的操作,模拟出了微信整体的登录界面样式和风格,包括了登录时的弹框和提示,以及文字变颜色等功能,是学习android手机界面...
Android项目源码动物连连看是一款android连连看游戏,应该说这个游戏太强大了,能触屏连连看,过关。用到技术很多,有小算法,相同的icon就会消掉项目中代码层次分明,大部分方法都加了详细的注释。(项目采用GBK...
如果你的Android程序需要自适应国际化,比如说多国语言等问题,那么就可以定义不同语言的UI布局,在程序装载时调用不同的布局。而且,如果我们需要修改UI的一些问题,就不必查看代码了,直接更改这些布局文件即可很...
• 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。 • 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 4 • ...
输入联系人的基本信息,并可根据用户需求增加个性化信息如头像、姓名、手机号码、办室电话、家庭电话、职务职称、单位名称、地址、邮政编码、Email、其他联系方式、备注这些信息,击确认返回主界面。点击通信录中一...
第1章 Android计算平台简介 1.1 面向新PC的全新平台 1.2 Android的历史 1.3 Dalvik VM剖析 1.4 理解Android软件栈 1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 ...
ScrollView + ViewPager + ActivityGroup实现android选项卡布局,代码比较简单,我写了注释,编码方式GBK