Android开发-android:gravity和android:layout_Gravity属性的用法

Android中的gravity属性及效果图展示 该属性可以应用于TextView、Button、EditText等各种视图控件上,通过设置gravity属性,我们可以实现文字、图标、按钮等元素的对齐效果。本文介绍了Android中的gravity属性及其作用,通过相应的源代码展示了不同取值下的效果图。在实际开发中,我们可以根据需求灵活运用gravity属性,实现控件内部内容的对齐操作,以达到更好的用户体验。通过以上示例,我们可以看到根据gravity属性的不同取值,控件内部的内容在布局中呈现出不同的对齐效果。一、gravity属性介绍。 阅读详情

1 简介:

在编写Android布局文件的时候,有两个非常容易混淆的属性,即android:gravity和android:layout_Gravity,本篇介绍它们在使用时的区别。

2 android:gravity和android:layout_Gravity的最主要的区别:

android:gravity:是控件内部的对齐方式。可以理解为,本控件会影响到子控件的显示;

android:layout_gravity:组件对于父容器的位置。它的参照物是“父控件”;

3 举例:

3.1例1:android:gravity举例:

让各个控件居中显示:

android:gravity设置为center

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    >

    <TextView
        android:id="@+id/hello_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:maxLength="500"
        />
    <ImageView
        android:layout_width="160dp"
        android:layout_height="200dp"
        android:id="@+id/imageview1"
        android:src="@mipmap/ic_launcher"
        >
    </ImageView>
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="确定"
        />

</LinearLayout>

效果:

 

说明:

LinearLayout是垂直排列;并且设置了属性 android:gravity="center";

LinearLayout的子控件没有设置android:gravity="center"。

3.1例1:android:layout_gravity举例:

一部分控件不居中显示;一部分控件居中显示

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/hello_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLength="500"
        android:text="Hello World!" />

    <ImageView
        android:layout_gravity="center"
        android:id="@+id/imageview1"
        android:layout_width="160dp"
        android:layout_height="200dp"
        android:src="@mipmap/ic_launcher">

    </ImageView>

    <Button
        android:layout_gravity="center"
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="确定" />

</LinearLayout>

效果图:

 

 说明:

LinearLayout是垂直排列;

textview没有设置android:layout_gravity="center",所以它位于左上角,是第一个控件;

ImageView和Button设置了android:layout_gravity="center",所以水平居中(父布局是垂直排列);ImageView是第二个控件;Button是第三个控件。

4用java代码进行设置:

例子代码:

Button button  = new Button(this);  
button.setText("确定");  
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
    LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);  
//此处相当于布局文件中的Android:layout_gravity属性  
lp.gravity = Gravity.RIGHT;  
button.setLayoutParams(lp); 
 
//此处相当于布局文件中的Android:gravity属性  
button.setGravity(Gravity.CENTER);  
  
LinearLayout linearLayout = new LinearLayout(this);  
//注意,对于LinearLayout布局来说,设置横向还是纵向是必须的!否则就看不到效果了。  
linearLayout.setOrientation(LinearLayout.VERTICAL);  
//添加控件到layoaut
linearLayout.addView(button);  

setContentView(linearLayout);  

说明:

lp.gravity = Gravity.RIGHT;  相当于布局文件中的Android:layout_gravity属性  

button.setGravity(Gravity.CENTER); 相当于布局文件中的Android:gravity属性  

linearLayout.setOrientation(LinearLayout.VERTICAL); 设置laout的排列方式,VERTICAL是垂直排列。


 

“Android中的Gravity属性和Layout_Gravity属性解析” 通过XML文件编写布局时,可以使用一些属性来控制视图在屏幕上的位置和对齐方式。这两个属性在Android开发中非常实用,可以灵活地控制视图的对齐方式,从而创建出各种精美的用户界面。“Android中的Gravity属性和Layout_Gravity属性解析”是常用的属性,用于控制视图内部内容的对齐方式和视图在父容器中的对齐方式。在上述示例中,两个按钮将以水平居中并位于视图的底部。在上述示例中,文本视图将位于父容器的水平和垂直中心。同样,可以通过组合多个取值来实现不同的对齐方式。符号来组合多个取值。 阅读详情

相关推荐

Android中gravity属性介绍及效果图

通过设置gravity属性,我们可以控制View内部元素的水平和垂直方向上的对齐方式,从而实现不同的UI布局效果。请注意,在使用gravity属性时,要保证父布局的宽高设置为包裹内容(wrap_content)或填充父布局(fill_parent或match_parent),以确保gravity属性的生效。gravity属性的取值可以是单个方向的对齐方式,也可以是多个方向的组合。下面我将介绍几种常用的gravity属性取值及其效果,并提供相应的源代码示例。

JaDentenet的博客 985

【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

在进行UI布局的时候,可能经常会用到 android:gravity  和 android:layout_Gravity 这两个属性。 关于这两个属性的区别,网上已经有很多人进行了说明,这边再简单说一下。 (资料来自网络)    LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。 他们的区别在于: android:gravi

幻影浪子 41万+

UltraScale+ FPGA中GTY收发器参考时钟的跨Bank共享机制解析

本文深入解析了UltraScale+ FPGA中GTY收发器参考时钟的跨Bank共享机制,详细介绍了时钟布线架构、SLR区域限制及Vivado工程配置要点。通过实际案例和优化建议,帮助工程师解决高速串行通信中的时钟共享问题,提升系统性能。

weixin_29280219的博客 630

安卓开发学习之001 LinearLayout之android:gravity详解

1.使用说明这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity=”top”和android:text=”hello”,这时Button上的文字“hello”将会位于Button的顶部。2.属性值这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_ve

Yu的专栏 5085

QMI8658A与QMC5883L(9轴)评估板实战指南:从硬件连接到数据校准

本文提供了QMI8658A与QMC5883L九轴传感器评估板的完整实战指南。详细介绍了从硬件I2C/USART连接到传感器零偏与地磁校准的关键步骤,并利用上位机实现数据可视化,帮助开发者快速上手9轴姿态传感技术,应用于无人机、机器人等领域。

metaverse5vr的博客 478

QMT Python API 实战指南:从安装到策略开发的完整流程

本文提供了一份详尽的QMT Python API实战指南,涵盖从环境配置到策略开发的完整流程。文章深入解析了xtdata行情模块与xttrader交易模块的核心架构与协作方式,并通过一个双均线策略实例,手把手教你如何获取数据、计算信号并执行交易,是量化交易开发者快速上手QMT Python接口文档的实用教程。

butter的博客 1414

Android中layout_gravity和gravity的区别

安卓中的 layout_gravity 属性和 gravity属性 有啥区别? LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity。 他们的区别在于: android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的...

weixin_34120274的博客 76

全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions

全局注意机制 GAM

Coding... 2575

android:layout_gravity="top",android:layout_gravity和gravity的区别

文章转自http://blog.youkuaiyun.com/shakespeare001/article/details/784346,给出了很详细的解释。1.首先来看看Android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,an...

weixin_34212182的博客 812

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 385

【YOLO目标检测全栈实战】68 模型量化:从FP32到INT8,精度不掉,速度翻倍

摘要: 模型量化能显著提升推理速度(如YOLOv5s帧率从15FPS提升至38FPS),但需避免三大误区:1)校准集需覆盖实际场景,而非随机采样;2)敏感层(如检测头)应保留FP32精度;3)预处理必须与量化前后一致。通过混合精度量化(Backbone用INT8,检测头用FP32)和逐通道量化,可实现<1%的mAP损失。关键步骤包括校准数据准备、量化感知训练及逐层精度评估,最终在Jetson Nano等边缘设备上实现速度与精度的平衡。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 145

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

Android动态布局中gravity、layout_gravity与layout_centerHorizontal属性区别介绍

iqqcode 2442

pdb文件删除杂原子 HETATM;保留或去除水分子

这样操作水分子也会跟着删除,如果需要保留水分子。

weixin_42357472的博客 2644

Android:layout_gravity 属性和 gravity属性

Android 开发中 layout_gravity 属性和 gravity属性 有什么区别?      LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity  区别在于:  android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以

cs_zhangyi的博客 676

基于STC8A8K64S4A12的掉电唤醒定时器应用,极大降低产品功耗

通过合理的配置和编程,我们可以充分发挥单片机的功能,实现能效优化和电池寿命延长的目标。其中,掉电唤醒定时器是其一项重要功能,可以在系统处于睡眠状态时通过定时器的计时功能进行唤醒,从而实现对系统功耗的有效控制。使用STC8A8K64S4A12的掉电唤醒定时器功能,我们可以在不影响系统正常工作的情况下,大大降低产品的功耗。通过以上的代码,我们实现了一个简单的掉电唤醒定时器功能。当系统进入睡眠模式后,定时器开始计时,到达预设的唤醒时间后,定时器中断被触发,系统从睡眠模式唤醒,执行相应的操作。

CodeSageX的博客 1090

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android layout_gravity 和gravity

LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity。(RelativeLayout是没有android:layout_gravity属性的) 他们的区别在于: android:gravity 属性是对该vi...

chuanrouwb599726的博客 135

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

浅谈安卓gravity和layout_gravity的区别

安卓gravity意思重力,我们通过gravity设置控件里面内容位置,安卓提供了center居中(水平垂直居中)常用属性,center_vertical垂直居中,center_horizontal水平居中;还有top上面;bottom下面,light左边,right右边。。。。。。   安卓layout_gravity意思布局重力,我们同通过layout_gravity设置布局里面的控件位置;

qq_36237165的博客 1539

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android线性布局重要属性

上一节的实例中用到了两个属性gravity和layout_weight,这两个属性在Android开发中会经常用到,用法也比较复杂,下面我们来讲解一下这两个属性的用法。3.4.1 gravity属性:Android中的gravity属性有两种形式:layout_gravity和gravity,这两种有什么区别呢?从字面意思上就可以大概理解,第一个layout_gravity控制控件在父布局中的位置

张亚运的专栏 5724

gravity 和 layout_gravity的区别

android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个.  android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左  靠右等位置就可以通过该属性设置. 

586

android: layout_gravity与gravity区别及动态设置

1. layout_gravity与gravity区别:    gravity:是用来指定文字在控件中的对齐方式。    layout_gravity:是用来指定控件在父控件(布局)的对齐方式。    注意:       当LinearLayout的排列方式为horizontal时,只有垂直方向上的对齐方式才能生效;       当LinearLayout的排列方式为vertic

jmflovezlf的专栏 9214

android:layout_gravity和android:gravity属性的区别

gravity的中文意思就是”重心“,就是表示view横向和纵向的停靠位置 android:gravity:是对view控件本身来说的,是用来设置view本身的文本应该显示在view的什么位置,默认值是左侧 android:layout_gravity:是相对于包含改元素的父元素来说的,设置该元素在父元素的什么位置 比如TextView: androi

me10zyl的专栏 556

Android中Layout_gravity 和gravity的区别:

layout_gravity 和gravity的区别

zhao2017的博客 360

android:layout_gravity和android:gravity的使用区别

android:gravity: 这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性, android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。 android:layout_gravity: 这个是针对控件本身而言,用来控制该控件在

caohb2013的专栏 339

layout_gravity和gravity的用法

也谈layout_gravity和gravity的用法 相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过。 简单使用一下搜索工具,我们就不难找到下面这样的答案: layout_gravity 表示组件自身在父组件中的位置 gravity             表示组件的子组件在组件中的位置 看似很简单嘛~) 貌似大伙瞅一眼就明白了。

liaction的专栏 878
上一篇: android:layout_marginLeft等的简单用法
下一篇: "ScrollView can host only one direct child"问题解决
liranke
博客等级 码龄20年 4939粉丝 594原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值