加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Android shape文件属性分析

发布时间:2021-12-11 11:45:24 所属栏目:PHP教程 来源:互联网
导读:Android开发中难免用到自定义的资源文件,其中很重要的便是Shape文件,Shape文件可以用来定义任意形状,常常用来做背景色等。 Shape文件实际上也是.xml,其根元素是shape。下面将详细介绍Shape文件中各种元素和属性的含义。 根元素shape指定基本形状 shape属
Android开发中难免用到自定义的资源文件,其中很重要的便是Shape文件,Shape文件可以用来定义任意形状,常常用来做背景色等。
 
Shape文件实际上也是.xml,其根元素是shape。下面将详细介绍Shape文件中各种元素和属性的含义。
 
根元素<shape>指定基本形状
 
shape属性指定基本形状,允许的值有:rectangle(矩形),oval(椭圆),line(线条), ring(环)。默认的值是矩形,下面的代码定义了一个矩形:
 
<?xml version="1.0" encoding="utf-8"?>
 
<shape android:shape="rectangle"
 
    xmlns:android="http://schemas.android.com/apk/res/android" >
 
</shape>
 
 
visible属性设置形状是否初始可见。
 
仅当形状定义为ring时,下列属性才可用:
 
innerRadius指定内环(即中空的洞)的半径,接收Dimension类型。
 
 
innerRadiusRatio为浮点型,以环的宽度比率来表示内环的半径,例如,如果android:innerRadiusRatio,表示内环半径等于环的宽度除以5,这个值是可以被覆盖的,默认为9.
 
thickness指定环的厚度,类型为Dimension。
 
thicknessRatio也为浮点型,以环的宽度比率来表示环的厚度,例如,如果该值为"2",那么环的厚度就等于环的宽度除以2。这个值是可以被android:thickness覆盖的,默认值是3.
 
 
关于useLevel请参加下节<gradient>。
 
<gradient>设置渐变填充
 
    startcolor、centercolor、endcolor设置渐变的起止色,即允许设置两次渐变。
 
    angle设置渐变的角度,仅当渐变类型为线性渐变时有效。默认0值为水平向右,其他角度以逆时针旋转为准,例如设置为90则是自下而上,设置为270自上而下,以此类推。注意:必须是45的倍数。
 
 
    type设置渐变类型,默认是linear(线性渐变),如果设置为radial(放射/径向渐变),则必须同时设置gradientRadius属性,该属性指定渐变半径,注意:这个半径并不是Dimension,不接受dp等单位,只能设置数字。此外还可以设置一个比较有意思的方式:sweep(扫描渐变)。三种渐变方式的效果见下图。
 
Android shape文件属性详解Android shape文件属性详解Android shape文件属性详解
 
  centerX、centerY两个属性用于设置渐变的中心点位置,仅当渐变类型为放射渐变时有效,类型为分数或小数,不接受Dimension。默认值是0.5,有效值是0.0~1.0,超出该范围后会看不出渐变效果。
 
 
useLevel属性通常不使用。该属性用于指定是否将该shape当成一个LevelListDrawable来使用,默认值为false。
 
 
下面的代码定义了一个线性的上下渐变:
 
<gradient android:startColor="#67CC24" android:endColor="#3E9010" android:angle="270" />
 
<solid>设置纯色填充
 
 
这个元素本身没什么好说的,既然是纯色填充,只有color一个属性。
 
注意:如果同一份文件同时指定渐变和纯色填充,则顺序在后面的会覆盖掉前面的设置!
 
<size>指定尺寸
 
使用width、height分别设置宽高,类型为Dimension。
 
注意:Shape文件即使指定了size,默认情况下在使用时也会缩放到其容器的大小。如果在ImageView中使用,可以使用android:scaleType进行缩放的限制。
 
<stroke>描边
 
当定义的形状为line(线条)时,该属性为必选项,设置线条的样式。当形状为其他形状时,该元素起描边的作用。
 
width指定边框的宽度(Dimension),color指定边框颜色,只接受color类型。
 
我们还可以设置虚线边框:使用dashGap设置虚线之间的间隔,dashWidth设置每根虚线'-'的长度(为什么Google不把这个叫做Length?我也不知道)。仅当这两个属性都设置时虚线效果才生效。
 
下面的代码定义了一个蓝色虚线边框:
 
 
    <stroke android:color="#0000FF" android:width="5dp"
 
        android:dashGap="3dp" android:dashWidth="10dp"/>
 
 
<corners>设置圆角
 
仅当形状为矩形时该元素才生效。topLeftRadius、topRightRadius、bottomLeftRadius、bottomRightRadius四个属性分别设置四个角,radius则统一设置(四个角相同)。下面的代码设置了四个相同的圆角:
 
<corners android:radius="10dp"/>
 
<padding>设置边距
 
该元素的含义请参照android:layout_paddingLeft等属性。共有四个方向left、right、top、bottom可以设置,但没有提供统一设置的属性。
 
以上介绍了Shape文件的所有可用元素和属性,但要真正用好shape,还要多写多用才行。如有描述错误或不妥的地方,欢迎各位批评指正。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读