Android布局中涉及的一些属性

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" >

    <TextView
        android: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.

 

示例代码

作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

时间: 2025-01-21 01:27:59

Android布局中涉及的一些属性的相关文章

Android 布局中的android:onClick的使用方法总结

Android 布局中的android:onClick的使用方法总结 Android布局中的 android:onClick="..."属性设置点击时从上下文中调用指定的方法.该属性值和要调用的方法名称完全一致.一般在Activity定义符合如下参数和返回值的函数并将方法名字符串指定为该属性值即可: public void onClickButton(View view) android:onClick="onClickButton" 功能类似于Button的监听器

在android布局中测试能自动化点击按钮吗?

问题描述 在android布局中测试能自动化点击按钮吗? 我想测试程序的功能,想自动化大多数的用户交互.其中一个是按钮(一个需要用户交互的地方). 是否有可能自动化?是否违背安全呢? 解决方案 给你推荐一个文档,关于简单的Android自动化UI测试.Automated Unit Testing the Android UI 还有button.performClick();

Android开发中ImageView的scaletype属性用法分析_Android

本文实例讲述了Android开发中ImageView的scaletype属性用法.分享给大家供大家参考,具体如下: ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType).android:scaleType是控制图片如何 resized/moved来匹对ImageView的size.ImageView.ScaleType / android:scaleType值的意义区别: CENTER /cente

图片-两个android布局中的问题

问题描述 两个android布局中的问题 ,运行后成为imagebutton无法解除底部,而且背景长方形消除不了. 解决方案 android 布局问题总结[Android日记]自定义View及其布局问题 解决方案二: 设置textview透明: android:background="#00000000" 解决方案三: 运行后成为imagebutton无法解除底部 什么意思? 长方形背景可以设置ImageButton 背景透明 android:background="#000

Android开发中ImageView的scaletype属性用法分析

本文实例讲述了Android开发中ImageView的scaletype属性用法.分享给大家供大家参考,具体如下: ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType).android:scaleType是控制图片如何 resized/moved来匹对ImageView的size.ImageView.ScaleType / android:scaleType值的意义区别: CENTER /cente

android平台中的模拟器 hardWare 属性

Hardware: Abstracted Lcd Density默认160,最直接的表现就是手机图标和文字的大小,120最小,可根据分辨率的大小自定义,一般推荐使用默认值即可. SD Card Support 是否支持插入/弹出闪存卡; Dpad Support 是否要让手机支持DPad键,默认为yes,表示支持.DPad键就是手机上的那些Home键.返回键.电话键.电源键. 不过测试表明即使no,皮肤上的那些键也可用,可以理解为外设之类的手柄,键盘等. Accelerometer是否要让手机支

layout-android布局中的swipe动画

问题描述 android布局中的swipe动画 我了解到动画效果可以运用到布局中,能实现onclicklistener, ontouchlistener事件. 但是不了解当向左边或右边滑动布局时,哪个事件会发生. previousButton.setOnClickListener(new OnClickListener() { @Override publicvoid onClick(View v) { viewFlipper.setInAnimation(MainActivity.this,R

DIV+CSS网页布局中margin优化的一种思路

css|网页|优化 margin是我们在进行CSS布局中非常常用的属性之一,但如果运用不得当,往往会产生过多的垃圾代码,让我们的编码体积不断增加.今天我们介绍一种编码优化的小实例,通过此例希望大家能意识到代码优化的途径是多种多样的,也算是一个抛砖引玉的引子吧. 看XHTML代码: <div id="main">     <div id="body1">          <div id="content1"> 

android布局加载imagebutton问题详细求解

问题描述 android布局加载imagebutton问题详细求解 android布局中ImageButton怎么设置图片底色为透明,只保留图片上的画面. 解决方案 设置背景为透明色啊,background 解决方案二: background="#0000000" 解决方案三: android:background="#00000000" 一共8个"0" 解决方案四: android:id="@+id/button" andr