android控件属性padding

       在写android应用时,我们肯定会写布局文件,在写布局文件时,我们经常会使用控件的padding属性.总以为它很简单,也就没有详细的去了解它,今天在写布局文件时,突然发现它并没有那么简单,所以决定去详细的了解一下它.

       使用android studio中创建一个项目,直接运行,我们看到的效果如下:


可以看到"Hello World!"字符串距离屏幕的左边、上边,都有一些距离。打开应用的布局文件,我们可以看到如下代码,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.ysy.mypaddingpropertydemo.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"/>
</RelativeLayout>
父控件是个RelativeLayout,子控件是个TextView。父控件设置了paddingBottom、paddingLeft、paddingRight、paddingTop,四个padding属性。为了好区分父控件和子控件,我们给它们设置不同的背景颜色。

运行效果如下:

我们可以看到,padding值的作用是:让控件里的内容距控件边上有一定的距离;这时候,我就想父控件设置的是paddingBottom、paddingTop、paddingLeft、paddingRight都为16dp,而目前的效果是只看到子控件距上边和左边是16dp,而下边和右边则肯定不是16dp了,这是什么原因呢?我们可以看看布局文件中的代码,TextView的宽高默认设置的是wrap_content,包裹内容;我想这里应该是因为子控件的大小不能填充父控件,导致子控件只能距左边和上边为16dp了,这里我们可以设置子控件TextView的宽高为match_parent,看看效果:


现在我们就可以看到,子控件距父控件的上下左右的边上的距离都为16dp了。

现在我们将父控件paddingBottom、paddingTop、paddingLeft、paddingRight这四个属性改为一个padding属性,因为这四个属性设置的值都为16dp,和设置padding属性为16dp是一样的效果。这时,我们增大设置的值为100dp看看效果:


可以看到子控件被我们缩小了,我就在想,如果我一直增大padding的值,会出现什么效果呢,当我将值增大到150dp时,TextView中的内容变成竖直的了,效果如下:


再将padding值增大到160dp时,整个TextView就都看不到了,(我创建的模拟器的大小是320*480的,当我将padding值设置为160dp时,左边右边的距离都为160dp了,就占据了整个屏幕,所以就看不到TextView了)。

       总结:

     1)padding值设置的是控件里的内容距控件边上的距离。

     2)当控件里面的内容不能占据整个控件时,padding是以左上角为准设置。

     3)当paddingBottom、paddingTop、paddingLeft、paddingRight设置的值相同时,可以使用padding属性代替。

     4)当padding值设置的大小大于等于屏幕的宽度的一般时,或者paddingLeft+paddingRight大于等于屏幕的宽度时,控件中的内容会被挤的显示不出来。(这里默认认为手机屏幕的宽度小于手机屏幕的高度)

  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是 Android 控件属性的一些常见示例: 1. Button 控件属性: - android:text:按钮上显示的文本。 - android:textSize:按钮上文本的大小。 - android:background:按钮的背景颜色或背景图片。 - android:padding:按钮内部的填充量。 2. TextView 控件属性: - android:text:TextView 中显示的文本。 - android:textSize:TextView 中文本的大小。 - android:textColor:TextView 中文本的颜色。 - android:gravity:TextView 中文本的对齐方式。 - android:background:TextView 的背景颜色或背景图片。 3. EditText 控件属性: - android:hint:在 EditText 中显示的提示文本。 - android:inputType:EditText 中输入的数据类型,如数字、文本等。 - android:maxLength:EditText 中最大允许输入的字符数。 - android:background:EditText 的背景颜色或背景图片。 4. ImageView 控件属性: - android:src:ImageView 中显示的图片资源。 - android:scaleType:ImageView 中图片的缩放方式。 - android:layout_width:ImageView 的宽度。 - android:layout_height:ImageView 的高度。 5. LinearLayout 控件属性: - android:orientation:LinearLayout 中子控件的排列方向,如水平或垂直。 - android:layout_weight:LinearLayout 中子控件的权重。 - android:layout_gravity:LinearLayout 中子控件的对齐方式。 6. RelativeLayout 控件属性: - android:layout_alignParentTop:RelativeLayout 中子控件与父控件顶部对齐。 - android:layout_alignParentLeft:RelativeLayout 中子控件与父控件左侧对齐。 - android:layout_alignParentRight:RelativeLayout 中子控件与父控件右侧对齐。 - android:layout_alignParentBottom:RelativeLayout 中子控件与父控件底部对齐。 这只是一小部分常见的控件属性,还有很多其他的属性可以使用。如果需要了解更多,请参考 Android 开发文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值