美文网首页
布局基础

布局基础

作者: 四喜汤圆 | 来源:发表于2019-07-20 00:48 被阅读0次

一、Shape

Android中shape属性详解

1. 作用

ShapeDrawable 用于定义一个基本的几何图形,ShapeDrawable 对象的 XML 文件的根元素为<shape>

2. 相关概念

摘自《疯狂Android-李刚》

(1)<shape>标签的属性

  • android:shape=["rectangle" | "oval" | "line" | "ring"]
    定义 shape 时该属性必须指定,默认为矩形

  • 以下<shape>标签的属性只有android:shape="ring"时可用
    android:innerRadius 尺寸,内环的半径。
    android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,
    android:thickness 尺寸,环的厚度
    android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,例如,如果android:thicknessRatio="2",
    android:useLevel boolean值,如果当做是LevelListDrawable使用时值为true,否则为false.

(2)<shape>标签的子标签

  • <corners>

作用:定义圆角

该标签下属性:

<corners    //定义圆角  
    android:radius="dimension"      //全部的圆角半径  
    android:topLeftRadius="dimension"   //左上角的圆角半径  
    android:topRightRadius="dimension"  //右上角的圆角半径  
    android:bottomLeftRadius="dimension"    //左下角的圆角半径  
    android:bottomRightRadius="dimension" />    //右下角的圆角半径
  • <solid>

作用:定义内部填充色

该标签下属性:

<solid  android:color="color" /> 
  • <gradient>

作用:定义渐变色

该标签下属性:
android:type=["linear" | "radial" | "sweep"] //共有3中渐变类型,线性渐变(默认)/放射渐变/扫描式渐变

android:type="linear"时可用属性:
android:angle="integer" //渐变角度,必须为45的倍数,0为从左到右,90为从上到下

android:type="radial"(放射)时可用属性:
android:centerX="float" //渐变中心X的相当位置,范围为0~1
android:centerY="float" //渐变中心Y的相当位置,范围为0~1
android:gradientRadius="float" //渐变的半径,只有当渐变类型为radial时才能使用

android:type="sweep"(放射)时可用属性:

android:type=["linear" | "radial" | "sweep"]时均可用属性:
android: startColor = "color"//渐变开始点的颜色
android: centerColor = "color"//渐变中间点的颜色,在开始与结束点之间
android: endColor = "color" //渐变结束点的颜色

  • <stroke>

作用:定义描边,可定义宽度、颜色、虚实。

该标签下属性:

<stroke       
    android:width="dimension"   //描边的宽度  
    android:color="color"   //描边的颜色  
    // 以下两个属性设置虚线  
    android:dashWidth="dimension"   //虚线的宽度,值为0时是实线  
    android:dashGap="dimension" />      //虚线的间隔 
  • <size><padding>不常用

3. 使用

(1)新建 shape.xml文件,一般放在res/drawable/

(2)写写写

  • 首先要指定android:shape属性
  • 然后设置相应的其他属性及子标签

(3)将 shape 应用到目标控件

二、Selector

Android中selector的使用

1. 作用

StateListDrawable 用于组织多个 Drawable 资源,当使用 StateListDrawable 作为目标组件的背景、前景图片时,StateListDrawable 所显示的 Drawable 对象会随目标组件状态的改变而自动切换

2. 相关概念

StateListDrawable 对象的 XML 文件的根元素为<selector>

(1)<selector>标签的属性
无特别属性

(2)<selector>标签的子标签
<selector>可包含多个<item>标签。<item>标签的属性有:

  • android:colorandroid:drawable
    指定颜色或 drawable 对象

  • android:state_xxx
    指定一个特定状态

摘自《疯狂Android-李刚》

3. 使用

(1)新建 rselectot.xml文件,一般放在res/drawable/`

(2)写写写

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!--获取焦点时颜色-->
    <item android:color="#111" android:state_focused="true" />
    <!--失去焦点时颜色-->
    <item android:color="#112" android:state_focused="false" />
</selector>

(3)将 selector 应用到目标控件

<EditText
        android:id="@+id/username"
        android:text="账号"
        android:textColor="@drawable/selector"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

三、Android 布局文件中涉及到的单位

四、Android 布局中的基线

五、不透明度

Android设置控件的透明度(半透明效果)
Android控件设置透明度的三种方法

1. Java 代码中设置

2. xml 布局文件中android:alpha=0.7设置

3. xml 布局文件中android:background="#80987654"设置

相关文章

网友评论

      本文标题:布局基础

      本文链接:https://www.haomeiwen.com/subject/touslctx.html