简单的Android XML布局使用_android studio的layout文件下xml怎么输入布局内容-程序员宅基地

技术标签: Android  

Android XML布局


前言

今天我们来简单介绍一下Android的XML布局以及三种常见的XML布局


目录

目录


1.XML布局的优点

在XML文件中设计UI可以更好地将应用的外观与控制应用行为的代码隔离,每次修改或调整界面布局只需要修改XML文件的代码而不是修改源码和重新编译。


2.XML布局基础介绍

2.1 调用XML布局

在编译XML布局文件时,都需要通过main函数中的 onCreate 来调用,通常使用如下方式来进行调用。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_linear_layout);
    }

其中setContentView里的内容‘R’为就是系统给声明的静态变量,所有的子类都是通过‘R’来调用。而‘R’的路径则是 Android 工程路径下的 app -> src -> main -> res 下。
R.layoutres文件夹下一个名为layout的文件夹,而R.layout.activity_linear_layout之后的部分则是layout文件夹下自己定义的.xml文件。

2.2 XML布局的常见属性

属性 描述
ID 控件名字,是当前控件的唯一标识,常用字符串表示
background 调整当前界面背景
gravity 调整所有控件所在的整体位置
layout_width 当前界面整体宽度,常用wrap_content和match_parent
layout_height 当前界面整体高度,常用wrap_content和match_parent
padding 调整屏幕边距,可以整体调整或者单项调整
text 控件显示文本,可调用values文件夹中的strings.xml来显示文本内容
textColor 显示文本颜色,可调用values文件夹中的color.xml来定义
textSize 显示文本字体大小,单位常用dp和px
textStyle 显示文本字体风格,可选的有斜体和粗体

3.常见的三种简单XML布局

3.1 LinearLayout

这一种使用单个水平行或垂直行来组织子项的布局,是风格最简单的布局。

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="false"
        android:layout_alignParentStart="true"
        android:weightSum="1"
        android:id="@+id/linearLayout"
        android:layout_alignParentTop="false"
        android:layout_alignWithParentIfMissing="false"
        android:layout_alignParentRight="false"
        android:layout_alignParentBottom="false"
        android:background="#000000">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="One,One"
            android:id="@+id/textView2"
            android:textSize="16dp"
            android:gravity="center_horizontal"
            android:layout_weight="0.19"
            android:textColor="#ffffff" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="One,Two"
            android:id="@+id/textView3"
            android:textSize="16dp"
            android:layout_weight="0.34"
            android:gravity="center_horizontal"
            android:textColor="#ffffff" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="One,Three"
            android:id="@+id/textView4"
            android:layout_weight="0.27"
            android:textSize="16dp"
            android:gravity="center_horizontal"
            android:textColor="#ffffff" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="One,Four"
            android:id="@+id/textView5"
            android:textSize="16dp"
            android:gravity="center_horizontal"
            android:textColor="#ffffff" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/linearLayout"
        android:weightSum="1"
        android:id="@+id/linearLayout2"
        android:background="#000000">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Two,One"
            android:id="@+id/textView6"
            android:textSize="16dp"
            android:layout_weight="0.13"
            android:gravity="center_horizontal"
            android:textColor="#ffffff" />

        <TextView
            android:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42208273/article/details/80616740

智能推荐

第十二届蓝桥杯2021年4月c/c++ B组省赛第一场赛后总结_西安理工大学蓝桥杯四月-程序员宅基地

文章浏览阅读1.4k次,点赞3次,收藏11次。第十二届蓝桥杯c/c++ B组省赛第一场赛后总结文章目录第十二届蓝桥杯c/c++ B组省赛第一场赛后总结A:空间B:卡片C:直线D:货物摆放E:路径F:时间显示G:砝码称重H:杨辉三角形I :双向排序J:括号序列总结A:空间【问题描述】小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问256MB 的空间可以存储多少个 32 位二进制整数?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题_西安理工大学蓝桥杯四月

读论文:基于自监督知识的无监督新集域适应学习_uda和pda-程序员宅基地

文章浏览阅读1.9k次。面对真实环境中各种复杂的情况,提出了基于自监督知识的无监督新集域适应(SUNDA)方法迁移源域的样本对比知识_uda和pda

十一届蓝桥模拟赛 元素之间最大的元素距离 JAVA_不同元素的最大距离-程序员宅基地

文章浏览阅读4.1k次。问题描述  在数列 a_1, a_2, …, a_n中,定义两个元素 a_i 和 a_j 的距离为 |i-j|+|a_i-a_j|,即元素下标的距离加上元素值的差的绝对值,其中 |x| 表示 x 的绝对值。  给定一个数列,请问找出元素之间最大的元素距离。输入格式  输入的第一行包含一个整数 n。  第二行包含 n 个整数 a_1, a_2, …, a_n,相邻的整数间用空格分隔,表示给..._不同元素的最大距离

wpf中textbox换行解决方法_wpf textbox输入内容自动换行-程序员宅基地

文章浏览阅读8.7k次,点赞3次,收藏2次。,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="True"> 换行设置AcceptsReturn="True"AcceptsReturn的默认响应key为回车键(Enter),如果想改成其他键盘如下设置_wpf textbox输入内容自动换行

java泛型_java 泛型-程序员宅基地

文章浏览阅读832次。java泛型的使用_java 泛型

linux java 选择题_华为Java面试题中的九道单选-程序员宅基地

文章浏览阅读449次。华为Java面试题中的九道单选1.Java是从( )语言改进重新设计。A.Ada B.C++ C.Pasacal D.BASIC  答案:B2.下列语句哪一个正确( )A. Java程序经编译后会产生machine codeB. Java程序经编译后会产生byte codeC. Java程序经编译后会产生DLLD. 以上都不正确  答案:B3.下列说法正确的有( )A. class中的constr..._在编译程序时,所能指定的环境变量不包括class.path

随便推点

ESP8266-SDK编译环境安装包的安装、编译与烧录教程【windows】_esp8266 sdk扩展安装包-程序员宅基地

文章浏览阅读1.6w次,点赞2次,收藏12次。SDK编译环境安装包的安装、编译与烧录教程【支持最新版AT、IOT及LUA源码编译,附源码】1、安装包Fans_ESP8266_SDK_Make.exe下载地址:http://pan.baidu.com/s/1pJ6w1tD安装后在C盘下生成三个文件夹:c:\python27、c:\usr、c:\ESP8266_SDK_Fans_V2.0【最新固件源代码】2_esp8266 sdk扩展安装包

mysql错误编号及其意义_3061 - user variable name '' is illegal-程序员宅基地

文章浏览阅读1.4k次。mysql error code(备忘)转自:http://blog.csdn.net/jason0539/article/details/92784071005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数_3061 - user variable name '' is illegal

Canvas学习_canvas关于路径可用属性-程序员宅基地

文章浏览阅读420次。简介标签是 HTML5 中新定义的标签,它是一个画布标签,只是作为一个图形容器,必须使用脚本来绘制图形。Canvas基本使用<canvas> 标签<canvas>只有两个可选属性:width, height, 如果不给宽高设定初始值时,则默认width为300,height为150,不建议使用CSS样式表来给其设置宽高替换内容IE9版本以前的浏览器不支持<..._canvas关于路径可用属性

HiveQL:索引_ql index-程序员宅基地

文章浏览阅读378次。当逻辑分区实际上太多太细而几乎无法使用时,建立索引也就成为分区的另一个选择。建立索引可以帮助裁剪掉一张表的一些数据块,这样能够减少MapReduce的输入数据量。创建索引先创建一个employees表:hive> create table employees(name string,salary float,subordinates array_ql index

IDEA中 @override报错的解决方法-程序员宅基地

文章浏览阅读8.3k次,点赞3次,收藏6次。起因 今天用IDEA导入一个java工程时,碰上一个问题,代码中所有@override处标红,并提示:@override不支持对接口的实现。 原因是引用JDK5版本中存在小bug的问题。@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错。JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。 解决方法一:【如果是用本地的tomcat配置】File >> Project St.._@override报错

使用ArcGis工具合并图层-程序员宅基地

文章浏览阅读4.7k次。1.开始编辑 2.选中要合并的图层:根据图层的编号,点击Selected后,再点击Merge,合并 _arcgis 合并图层 json