当前位置: 首页 > 编程日记 > 正文

android 模板 ui布局,Android UI布局

一、线性布局-LinearLayout(至上而下布局)

5cfc91cc91cf

其中

android:orientation=”vertical”意思为垂直

方向的线性布局,此处的”vertical”可改为”horizontal”,意思是水平方向的线性布局。

android:layout_width=”match_parent”意思为这个控件的宽度占满整个屏幕或者父控件,此处的”match_parent”可改为”wrap_parant”,意思是宽度刚好包含住LinearLayout里面的内容。

常用布局控件:

android:id为控件指定相应的ID

android:text指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串

android:gravity控制这个一个控件的位置,比如居中、靠右、底部、上部等

android:textSize指定控件当中字体的大小

android:background指定该控件所使用的背景色,RGB命名法

android:layout_weight数值为几即该控件占满整个屏幕的数值合之几,比如当前Activity中有2个控件,第一个控件是android:layout_weight=”2″,第二个控件是android:layout_weight=”3″,则,第一个控件占整个屏幕的3/5。

android:height指定控件的高度

android:padding*指定控件的内边距,也就是说控件当中的内容,如android:paddingLeft=”10dip”、android:paddingRight=”10dip”等等。也可以直接android:padding=”10dip”意思是说内边距4面距离都为10.

android:singleLine如果设置为真的话,则将控件的所有内容在同一行当中进行显示

二、表格布局-TableLayout

概述:

TableLayout多用于列表的显示

1、把子元素放到行与列中。

2、不显示行、列和单元格的边界线。

3、单元格不能横跨行,类似于html。

5cfc91cc91cf

//这一条语句的意思是:是设置 TableLayout所有行的第二列为拉伸列。也就是说如果每行都有三列的话,剩余的空间由第二列补齐。为0时则是第一列为拉伸列。目的是为了把父控件填满。

三、嵌套布局即多个布局嵌套使用。

5cfc91cc91cf

如要实现以下布局:即多个LinearLayout嵌套

//需要注意的是嵌套的LinearLayout权重都是1,即各自占屏幕的一半。

四、相对布局-RelativeLayout

概念:

类似于CSS+DIV布局。

一个控件的位置,决定于他和周围控件的关系。

与其他控件的区别:

相对布局是依赖与和周围控件的关系而决定为位置的,如将A控件放在B控件的下方。

其中以下属性在实际应用中可能经常用到

android:layout_above将该控件的底部至于给定ID的控件之上

android:layout_below将该控件的顶部至于给定ID的控件之下

android:layout_toLeftOf将该控件的右边缘和给定ID的控件的左边缘对齐

android:layout_toRightOf将该控件的左边缘和给定ID的控件的右边缘对齐

android:layout_alignBaseline该控件的baseline和给定ID的控件的baseline对齐

android:layout_alignBottom将该控件的底部边缘与给定ID控件的底部边缘

android:layout_alignLeft将该控件的左边缘与给定ID控件的左边缘对齐

android:layout_alignRight将该控件的右边缘与给定ID控件的右边缘对齐

android:layout_alignTop将给定控件的顶部边缘与给定ID控件的顶部对齐

android:layout_alignParentBottom如果该值为true,则将该控件的底部和父控件的底部对齐

android:layout_alignParentLeft如果该值为true,则将该控件的左边与父控件的左边对齐

android:layout_alignParentRight如果该值为true,则将该控件的右边与父控件的右边对齐

android:layout_alignParentTop如果该值为true,则将控件的顶部与父控件的顶部对齐

android:layout_centerHorizontal如果值为真,该控件将被至于水平方向的中央

android:layout_centerInParent如果值为真,该控件将被至于父控件水平方向和垂直方向的中央

android:layout_centerVertical如果值为真,该控件将被至于垂直方向的中央

通俗的理解 Padding 为内边框,Margin 为外边框

对应的属性为

android:layout_marginBottom=”25dip”

android:layout_marginLeft=”10dip”

android:layout_marginTop=”10dip”

android:layout_marginRight=”10dip”

android:paddingLeft=”1dip”

android:paddingTop=”1dip”

android:paddingRight=”1dip”

android:paddingBottom=”1dip”

如果左右上下都是相同的设置则可以直接设置

android:layout_margin=”10dip”

android:padding=”5dip”

四、帧布局和网格布局-FrameLayout & GridLayout

FrameLayout

帧布局,在这种布局下,每个添加的子控件都被放在布局的左上角,并覆盖在前一个子控件的上层;此外,FrameLayout中的子控件的位置不能被指定。

GridLayout

网格布局,自Android4.0版本(API level 14)后,新增的网格布局。

注意:如果要达到网格的效果,推荐使用LinearLayout来实现,因为使用GridLayout会产生如下问题:

不能同时在(x,y)轴方向上进行控件的对齐;

当多层布局嵌套的时候会出现性能问题;

不能稳定地支持一些支持自由编辑布局的工具。

计算器界面

用GridLayout和Button模仿了一个计算器的按键界面。

5cfc91cc91cf

gridlayout_calculator.jpg

布局源码

文/Ruj(简书作者)

原文链接:http://www.jianshu.com/p/4f0a7d319c89

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

文/Ruj(简书作者)

原文链接:http://www.jianshu.com/p/4f0a7d319c89

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

相关文章:

两数的加减乘除

设计思路: 首先要解决把输入的字符转化为计算的数字的问题,然后解决怎样用消息框输入输出即可。 程序流程图: 源代码: 实验结果: 转载于:https://www.cnblogs.com/wxyxxx/p/4859039.html

使用Docker搭建svn服务器教程

使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点…

SDK Instrumentation创建一个Note的实例

除了高层框架如Robotium的solo,我们也可以直接调用SDK底层的提供的Instrumentation的API来实现如前几篇文章描述的创建一个note的功能。总所周知之Robotium就是基于Instrumentation的框架高层抽象实现的一个项目,所以对比《Robotium创建一个Note的实例》…

UOJ #53.线段树区间修改

【题目描述】:如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和 【输入描述】:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个…

Blender三维插图设计视频教程 3D Characters and Illustrations in Blender 2.9

Blender三维插图设计视频教程 3D Characters and Illustrations in Blender 2.9 MP4 |视频:h264,1920x1080 |音频:aac,44100 Hz |时长:16h:06分钟|文件大小:4.75 GB 流派:电子学习|语言:英语 云桥网络 平台 获取 教程 本课程详细介绍了blender 4个案…

android mac测试地址,android获取有线网的Mac地址

Android TV开发中有的机器会接有线网,需要获取Mac地址,下面是我测试的两种Mac地址的获取方式。1.一共两个方法,目前第二个方法获取的不准,最后一位数取的不对。private String getMacAddress(){String strMacAddr null;try {Inet…

[高中作文赏析]感受冬天

转载于:https://www.cnblogs.com/zhangzujin/p/4864725.html

2022-2028年中国文化产业园投资分析及前景预测报告(全卷)

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国文化行业市场行业相关概述、中国文化行业市场行业运行环境、分析了中国文化行业市场行业的…

matlab 降维工具箱

Matlab Toolbox for Dimensionality Reduction降维方法包括:Principal Component Analysis (PCA) • Probabilistic PCA • Factor Analysis (FA) • Sammon mapping • Linear Discriminant Analysis (LDA) • Multidimensional scaling (MDS) • Isomap •…

程序还没写完只能当然计算器用,先发过来用着后面的慢慢写

真的是没办法,只好先发上来用着,后面的要先处理事情,等处理完接着写!! http://files.cnblogs.com/mari/starco.rar 这个是地址!!!转载于:https://www.cnblogs.com/mari/archive/2004/12/22/80317.html

Servlet生命周期与工作原理

Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在下列时刻Servlet容器装载Servlet: 1&#…

ue4中面部动画制作视频教程 Facial Animation More In Unreal Engine 4

ue4中面部动画制作视频教程 Facial Animation & More In Unreal Engine 4 时长4h 包含项目文件 1920X1080 MP4 大小解压后:5.75G 语言:英语中英文字幕(根据原英文字幕机译更准确) 面部动画&虚幻引擎4中的更多内容 信息…

android c聊天功能,Android实现简单C/S聊天室应用

Android的网络应用:简单的C/S聊天室,供大家参考,具体内容如下服务器端:提供两个类创建ServerSocket监听的主类:MyServer.java负责处理每个Socket通信的线程类:ServerThread.java客户端:是一个Android应用程序>Multi…

docker 容器访问宿主机的解决方式

需求 基于本地docker的自研及使用需要,希望docker容器的服务能连接到宿主机提供的服务。 背景 网络上查阅了大量的资料,基本的解决办法是通过手动查阅IP的方式进行, 但docker宿主机的ip是会动态改变的,并不能保证永久不变。因此…

WinAPI: 输入光标相关的函数[3]

为什么80%的码农都做不了架构师?>>> 本例测试修改光标的形色, 效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls;typeTForm1 class(TForm)RadioGr…

用泛型方法Java从实体中提取属性值,以及在泛型方法中的使用

public <T> T getFieldValue(Object target, String fieldName, Class<T> typeName){try {Object fieldValue FieldUtils.readField(target, fieldName, true);return (T)fieldValue;} catch (IllegalAccessException e) {log.error("出错:实体类{}没有{}类型…

藤本植物和攀爬植物模型包 Globe Plants – Bundle 23 – Vines and Creepers 03 (3D Models)

藤本植物和攀爬植物模型包 Globe Plants – Bundle 23 – Vines and Creepers 03 (3D Models) 全球植物–第23束–藤本植物和攀缘植物03 (3D模型) 大小解压后&#xff1a;1.73G 云桥网络 平台huo取素材 这个捆绑包23包括15种3D藤本植物和攀缘植物&#xff0c;用于一般的景观…

蘑菇模拟器TV版 for Android,安卓NES模拟器TV版下载

NES Emulator TV精选了上千款经典的红白机小游戏&#xff0c;我们小时候玩过的经典游戏都能够在这里找到&#xff0c;每一款游戏在这里都能够分别存档&#xff0c;没有太多时间的上班族可以尝试一下&#xff0c;给玩家带来最好的游戏体验。软件简介NES模拟器精选上千款红白机游…

由Node.js事件驱动模型引发的思考

引言 近段时间听说了Node.js&#xff0c;很多文章表述这个事件驱动模型多么多么优秀&#xff0c;应用在服务器开发中有很大的优势&#xff0c;本身对此十分感性去&#xff0c;决定深入了解一下&#xff0c;由此也引发了一些对程序设计的思考&#xff0c;记录下来。 什么是Node.…

2022-2028年中国未硫化橡胶制品行业市场运行格局及未来前景展望报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国未硫化橡胶制品行业市场行业相关概述、中国未硫化橡胶制品行业市场行业运行环境、分析了中…

使用 TListView 控件(3)

为什么80%的码农都做不了架构师&#xff1f;>>> 本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls;typeTForm1 class(TForm)ListView1: TListView;Button…

POJ 1038 Bugs Integrated Inc (复杂的状压DP)

\(POJ~1038~~*Bugs~Integrated~Inc:\) &#xff08;复杂的状压DP&#xff09; \(solution:\) 很纠结的一道题目&#xff0c;写了大半天&#xff0c;就想练练手&#xff0c;结果这手生的。其实根据之前那道炮兵阵地就不应该写的&#xff0c;但是总觉得自己的思路会好一些&#x…

Blender基础入门学习教程 Learning Blender from Scratch

Blender基础入门学习教程 Learning Blender from Scratch 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:aac&#xff0c;48000 Hz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小:5.5 GB |时长:7h 28m 你会学到什么 云…

android 事件冒泡,Android事件分发

当用户触摸屏幕时&#xff0c;系统会对触摸事件做出相应的相应&#xff0c;这个事件会产生一个MotionEvent&#xff0c;系统根据一定的规则将其传递给View进行处理&#xff0c;这个过程就是事件分发机制了。事件的传递分为两个阶段&#xff0c;即捕获阶段和冒泡阶段。捕获阶段&…

sqlserver trigger

1 --2 -- Create database trigger template 3 --4 USE [EasyJobExTest]5 GO6 7 --判断触发器是否存在,存在则删除8 IF EXISTS(9 select top 1 t.name as trigger_name,a.name as table_name from sys.triggers t,sys.objects a 10 where Lower(a.name)section and t.paren…

jenkins+sonarqube流水线脚本模板

pipeline { //这个任务在哪个主机上运行 //agent any//将这个项目运行在slave上 agent { label node1 }//参数化构建,主要设定git_version变量的值 parameters { string(name: git_version, defaultValue: v1.1, description: 选择你要部署的tag??) }stages { //整个部署的任…

苹果手机在火车站被偷的状况下如何定位找回

苹果手机在火车站被偷的状况下如何定位找回。首先打开“itunes”&#xff0c;选择菜单栏的“文件”-“将文件添加到资料库”选择要做铃声的歌曲&#xff0c;单击“打开”歌曲会出现在“资料库”的“音乐”里右击歌曲&#xff0c;选择“显示简介”选择“选项”填上“起始时间”和…

Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender

Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender CGCookie——Blender纹理基…

14/10/校内测试{天天考,丧心病狂}

1&#xff0c; 给定平面上n个OIer和n台电脑&#xff0c;每个OIer只能水平向右和竖直向下&#xff0c;找到一台电脑写代码&#xff0c;其花费为OIer与电脑之间的曼哈顿距离(|x_i-x_j||y_i-y_j|)。求出使n个OIer均找到自己电脑的最小花费。 输入输出格式 Input/output 输入格式&a…

android 图标拖动不了,拖动式选项卡(仿android) 添加了上下拉刷新后,下拉即刷新,而不是滚动到顶后再刷新,同时还想问一下正在刷新的图标怎么移到选项卡下...

这是我的HTML代码.mui-control-content {background-color: white;min-height: 600px;}.mui-control-content .mui-loading {margin-top: 50px;}新闻音乐sport第一个选项卡子项-1第一个选项卡子项-2第一个选项卡子项-3第一个选项卡子项-4第一个选项卡子项-5第一个选项卡子项-6第…