Android:gravity属性

线性布局常见的就是利用LinearLayout进行布局,其中有个比较重要的属性就是android:gravity,在官方文档中是这么描述这个属性的:指定一个元素怎么放置它的内容,包括在X和Y轴,在它自己的边框中。

下面我们将在一个简单的TextView中应用android:gravity属性。假设我们想要TextView内的内容在右侧显示,那么我们就可以编写对应的XML布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#000000"android:orientation="vertical" ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_margin="@dimen/padding_medium"android:background="#ffffff"android:gravity="right"android:text="@string/hello_world"android:textColor="#ff0000"android:textSize="@dimen/font_size" />
</LinearLayout>

效果如下图

盒模型

为了更加准确地控制TextView里面内容的位置,我们可以使用一系列的padding属性来控制。在使用padding属性之前,先科普一下padding和Marigin之间的区别,然后我们在通过实际的效果看看他们之间的差异。

下图所示是一个类似盒子的模型,我们将通过下面的模型来讲解Padding和Marigin之间的区别。从图中可以看出,在Container(父控件)里面有一个子控件,假设是一个TextView控件。其中Margin是子控件与父控件之间的间隔大小。Border是子控件的边框,它是子控件和父控件的边界。Padding是指子控件中的内容(Content Area)与子控件Border的间隔大小。

margin属性

Android中有一系列的margin属性,下面让我们看看其中的android:layout_marginRight属性,为了有一个对比的效果,我们先将marginRight设为0dip,再将其设为50dip,如以下两图所示

android:layout_marginRight="0dip"

android:layout_marginRight="50dip"

从上图中,我们可以看出,左图TextView控件跟他的父控件的是没有右间隔的,而右图明显的有一块间隔(见右图黄色圈圈部分)。

marginRight相同的还有以下属性,它们的原理都相同,就不一一细讲了。

属性名 相关方法 描述
android:layout_marginBottom setMargins(int,int,int,int) Specifies extra space on the bottom side of this view.
android:layout_marginEnd setMarginEnd(int) Specifies extra space on the end side of this view.
android:layout_marginLeft setMargins(int,int,int,int) Specifies extra space on the left side of this view.
android:layout_marginRight setMargins(int,int,int,int) Specifies extra space on the right side of this view.
android:layout_marginStart setMarginStart(int) Specifies extra space on the start side of this view.
android:layout_marginTop setMargins(int,int,int,int) Specifies extra space on the top side of this view.

padding属性

下面让我们来看看android:layout_paddingRight属性。我们将在以下布局中,通过改变android:layout_paddingRight属性,来看看变化。

为了有一个对比的效果,我们先将paddingRight设为0dip,再将其设为50dip,如以下两图所示

android:layout_paddingRight="0dip" android:layout_paddingRight="50dip"

从上图中,我们可以看出,左图TextView控件中的内容跟TextView的边框(border)是没有右间隔的,而右图明显的有一块间隔(见右图黄色圈圈部分)。

与paddingRight相同的还有以下属性,它们的原理都相同,就不一一细讲了。

属性名 相关方法 描述
android:padding setPaddingRelative(int,int,int,int) Sets the padding, in pixels, of all four edges.
android:paddingBottom setPaddingRelative(int,int,int,int) Sets the padding, in pixels, of the bottom edge; see padding.
android:paddingEnd setPaddingRelative(int,int,int,int) Sets the padding, in pixels, of the end edge; see padding.
android:paddingLeft setPadding(int,int,int,int) Sets the padding, in pixels, of the left edge; see padding.
android:paddingRight setPadding(int,int,int,int) Sets the padding, in pixels, of the right edge; see padding.
android:paddingStart setPaddingRelative(int,int,int,int) Sets the padding, in pixels, of the start edge; see padding.
android:paddingTop setPaddingRelative(int,int,int,int) Sets the padding, in pixels, of the top edge; see padding.

示例代码

转载于:https://www.cnblogs.com/kissazi2/p/3309109.html

Android布局中涉及的一些属性相关推荐

  1. 详解Android布局中gravity与layout_gravity属性

    在android布局中,我们经常会用到"重心"-gravity这个属性.但是gravity有不同的类型: gravity layout_gravity 相对布局中的layout_c ...

  2. Android布局中margin与padding的区别

    我们知道Android开发不仅仅有代码的动态控制,而且还涉及到布局的静态搭建(xml).几乎在每一个xml文件中,我们总会看到margin和padding这两个属性,今天让我们初步探究一下它们之间的区 ...

  3. android布局中使用include及需注意点

    在android布局中,使用include,将另一个xml文件引入,可作为布局的一部分,但在使用include时,需注意以下问题:一.使用include引入如现有标题栏布局block_header.x ...

  4. android 布局 站位符,基于android布局中的常用占位符介绍

    大家在做布局文件是肯定会遇到过下面的这种情况 填充出现问题,所以需要用到占位符规范填充 汉字常用占位符: android:layout_width="wrap_content" a ...

  5. Android布局中的空格以及占一个汉字宽度的空格的实现

    在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格: 窄空格:  一个汉字宽度的空格:   [用两个空格(  )占一个汉字的宽度时,两个空格比一 ...

  6. android 多个占位符,基于android布局中的常用占位符介绍

    大家在做布局文件是肯定会遇到过下面的这种情况 填充出现问题,所以需要用到占位符规范填充 汉字常用占位符: android:layout_width="wrap_content" a ...

  7. Android布局中gravity、layout_gravity与layout_centerHorizontal属性区别介绍

    gravity使用区分 gravity:控制控件内文字的对齐方式,LinearLayout.RelativeLayout均生效 gravity是设置自身内部元素的对齐方式.比如一个TextView,则 ...

  8. 在android布局中使用include和merge标签

    在我们开发Android布局时,经常会有很多的布局是相同的,这个时候我们可以通过<include/>和<merge/>标签实现将复杂的布局包含在需要的布局中,减少重复代码的编写 ...

  9. android 布局中 layout_gravity、gravity、orientation、layout_weight

    线性布局中,有 4 个及其重要的参数,直接决定元素的布局和位置,这四个参数是 android:layout_gravity ( 是本元素相对于父元素的重力方向 ) android:gravity (是 ...

最新文章

  1. KNN(k-NearestNeighbor)
  2. 人工智能是人性的罗夏测试
  3. 索尼发布全球首款内置AI传感器,1200万像素,660元起售
  4. [云炬python3玩转机器学习] 6-1什么是梯度下降法
  5. html标记什么规定applet,HTML applet 标签
  6. 苹果7手机html5测试,HTML5 基础测试题
  7. a*算法的时间复杂度_算法的时间和空间复杂度,就是这么简单
  8. 【动态规划】完全背包问题
  9. 一台手机苹果含泪赚4000?iPhone 12硬件成本曝光
  10. Java的Redis连接池代码
  11. 计算机指数函数符号,常用数学符号大全(注音及注解)
  12. 等比 / 等差数列求和公式
  13. windows文字转语音示例
  14. deployer部署_Laravel使用CircleCI和Deployer进行连续部署
  15. 模糊查询 like 多个条件
  16. 【综合笔试题】难度 3/5,挺有意思的一道题(既可图论,也可贪心)
  17. OpenGL中的平移旋转缩放
  18. Python操作SQL server向其中插入数据时报错,且报错内容没有指向性。
  19. css鼠标经过按钮变色6,像这种鼠标移过去会变色的按钮怎么做的
  20. 2015.3.30第一次博客测试

热门文章

  1. python做平面设计有前途吗_现在学平面设计还有发展前景吗?
  2. Qt学习(十):QT连接mysql(增加、删除、遍历)
  3. python实现滑动窗口平均_数据流滑动窗口平均值 · sliding window average from data stream...
  4. 的写法_横、竖的写法
  5. DOS下perl调试命令
  6. carsim学习笔记3——仿真环境(驾驶员道路环境)
  7. AI理论知识整理(3)-正定矩阵
  8. C指针原理(26)-gtk
  9. 【Python基础】101道Numpy、Pandas练习题,提升你的Python水平
  10. 78万奖金!天池最新CV大赛来了