View及其子元素常用属性

View属性

1.android:id

  • id相当于给控件或者布局设置了一个唯一标识
    创建id的方式:@id/id命名
    引用id的方式:Java中R.id.xx,xml中@id/xx
    一个布局中不能定义相同的id
    不同的布局中可以定义相同的id
    Activity通过setContentView来与一个layout关联,只会去关联的布局里找id

2.android:background

  • 背景色
    • #rrggbb 0-f RGB三原色
    • #aarrggbb aa是alpha,透明度的意思
    • #rgb 精准度不如6位RGB高
  • 背景图片
    • @drawable/图片名

3.android:onClick

  • 为该控件的单击事件绑定监听器

4.android:padding

  • 内边距
    • android:padding如果上下左右内边距相同时可以使用设置
    • android:paddingBottom下内边距
    • android:paddingTop上内边距
    • android:paddingRight右内边距
    • android:paddingLeft左内边距

5.android:layout_margin

  • 外边距
    • android:layout_margin如果上下左右外边距相同时可以使用设置
    • android:marginBottom下外边距
    • android:marginTop上外边距
    • android:marginLeft左外边距
    • android:marginRight右外边距

6.android:visibility

  • 控制控件隐藏和显示
    • visible:显示
    • invisible:隐藏但是占位置
    • gone:彻底隐藏,不占位置
      开发中隐藏不能绝对的选中哪个属性,要根据需求而定,是否隐藏控件或者布局后改变整体布局的排版方式!如果不想改变排版方式,需要选择invisible!如果排版方式改变并不会影响整体显示效果,需要选择gone!

7.android:alpha

  • 设置该组件透明度(0-1)

8.android:layout_height和android:layout_width

  • wrap_content:会根据内容的宽高来决定控件本身的宽高,有利于屏幕适配!
  • match_parent:匹配父容器
  • fill_parent:匹配父容器,已经在2.1以后过时,算法老旧不推荐使用
  • 具体的值:推荐dp/dip

Linear Layout属性

LinearLayout is a view group that aligns all children in a single direction,vertically or horizontally. You can specify the layout direction with the android:orientation attribute.
我的理解:呆萌 直来直去 不会拐弯

1.android:orientation

  • vertical:垂直
  • horizontal:水平
    规定内部控件或者布局的排列方向,一旦定义,不会拐弯,直到显示到屏幕外面为止!
    一个线性布局中可以实现垂直和水平排列,但是需要嵌套!如果单纯的使用线性布局,会使用多层嵌套!有悖UI定义优化原则(越简单的层次结构性能越佳)

2.android:layout_weight

  • 设置控件的权重!
    控件本身宽度或者高度+剩余宽度或者高度所占的权重比
    在Android中只要看见按比例分,就要想到权重!想到权重就要想到线性布局!权重是线性布局特有的属性!

  • 使用:

    • 方法一:根据线性布局排列方向,把对应的宽或者高写成0dp,那么权重属性值的比就是各个控件或者布局所占宽高的比!
    • 方法二:使用权重总值,默认情况下,线性布局中,权重总值等于子控件或者布局权重值的和!
      android:weightSum=”数值” 这个值也可以定义线性布局的权重总值!

3.android:gravity

  • 位置属性可以进行拼接如top|right右上
    父对子,属性写到父中:父容器或者父控件,控制子空间或者子属性的排列位置!

4.android:layout_gravity

  • 在线性布局中,使用android:layout_gravity是有缺陷的
    子对父,属性写到子中:控制自己本身相对于父容器的位置
  • 注意:
    • 如果线性布局是水平排列,那么,属性值和水平相关的不能生效!
    • 如果线性布局是垂直排列,那么,属性值和垂直相关的不能生效!

RelativeLayout属性

A RelativeLayout is a very powerful utility for designing a user interface because it can eliminate nested view groups and keep your layout hierarchy flat,which improves performance. If you find yourself using several nested LinearLayout groups, you may be able to replace them with a single RelativeLayout.

  • 第一组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。
    • layout_alignParentRight 该控件与父布局控件的右对齐吗?
    • layout_alignParentLeft 该控件与父布局控件的左对齐吗?
    • layout_alignParentTop 该控件与父布局控件的顶端对齐吗?
    • layout_alignParentBottom 该控件与父布局控件的底部对齐吗?
    • layout_centerInParent 该控件位于父布局控件的中心位置吗?
    • layout_centerVertical 该控件位于父布局控件的垂直中心位置吗?
    • layout_centerHorizontal 该控件位于父布局控件的水平中心位置吗?
  • 第二组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。
    • layout_toRightOf 该控件在哪个控件的右侧
    • layout_toLeftOf 该控件在哪个控件的左侧
    • layout_above 该控件在哪个控件的上侧
    • layout_below 该控件在哪个控件的下侧
  • 第三组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。
    • layout_alignRight 该控件与哪个控件的右对齐
    • layout_alignLeft 该控件与哪个控件的左对齐
    • layout_alignTop 该控件与哪个控件的顶对齐
    • layout_alignBottom 该控件与哪个控件的底对齐

FrameLayout属性

  • 帧布局,是所有布局中性能最好的布局!内部的控件会直接排放到布局的左上角,一层盖着一层!
    作用:通常用于容器布局
    可以使用android:layout_gravity来控制子控件排列的位置,并且和线性布局中不同的是,设置位置时没有任何限制

TextView

  • 文本编辑框,不可扩展的View

    • android:text显示文本内容
    • android:textColor文本内容颜色 遵循:#rrggbb #rgb
    • android:textSize文本大小 单位:sp
    • android:singleLine是否单行显示 值为true或false 已经过时
    • android:lines控制显示几行
    • android:maxLines控制最大显示行数 singleLine=”true”等价于maxLines=”1”
    • android:ellipsize当文本内容显示不全的时候会以省略号的形式出现!但是省略号出现的具体位置根据本属性(start、end、middle)决定!但是此属性需要配合单行或者多行限定使用
      省略号出现的前提,必须有行数限制!并且在显示的行数内,无法显示全文

      • android:singleLine三个值都生效
      • android:maxLines配合最大行数限制是多行,只有end生效!
      • 省略还有marquee(跑马灯)属性,要实现跑马灯效果,必须同时实现
        android:ellipsize=”marquee” 跑马灯
        android:singleLine=”true” 单行
        android:focusable=”true” 获取焦点
        android:focusableInTouchMode=”true” 触摸获取焦点
        android:marqueeRepeatLimit=”marquee_forever” 无限循环跑马灯
    • android:gravity控制文本显示内容的位置

    • android:drawableTop在文字上方加一个图片
    • android:drawableBottom在文字下方加一个图片
    • android:drawableLeft在文字左方加一个图片
    • android:drawableRight在文字右方加一个图片
    • android:textAllCaps所有字母都大些
    • android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web /email/phone/map/all)
      • web:自动识别网址类型
      • phone:自动识别手机号类型,可以使用名字:手机号
        如果想识别多个属性,用|拼接
    • android:lineSpacingExtra设置行间距
    • android:lineSpacingMultiplier设置行间距的倍数

点9图片处理

  • 上:画黑线的部分,代表x轴拉伸,可以拉伸的区域
  • 左:画黑线的部分,代表Y轴拉伸,可以拉伸的区域
  • 下、右:下和右黑线交汇的部分,可以用于文本显示
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值