android开发游记:xml配置图形文件

android提供了一种可使用配置文件替代图片资源的方法,一些简单的图片可以使用图形配置文件来代替,这样既可以节省空间减少app大小,也可以防止小图拉伸失真。所有一般在app中能够自己使用配置进行配置的图形一般都编写图形文件,而比较复杂的图片才使用图片文件格式。

下面介绍下shape标签的使用:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
</shape >

首先在drawable文件夹下创建一个xml文件,随意命名,例如shape_test.xml
这个xml文件能被当作一张图片来使用,下面一段代码标示下shape标签及其子标签和作用:

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

    <!-- 圆角 -->
    <corners
        android:radius="9dp"
        android:topLeftRadius="2dp"
        android:topRightRadius="2dp"
        android:bottomLeftRadius="2dp"
        android:bottomRightRadius="2dp"/><!-- 设置圆角半径 -->

    <!-- 渐变 -->
    <gradient
        android:startColor="@android:color/white"
        android:centerColor="@android:color/black"
        android:endColor="@android:color/black"
        android:useLevel="true"
        android:angle="45"
        android:type="radial"
        android:centerX="0"
        android:centerY="0"
        android:gradientRadius="90"/>

    <!-- 间隔 -->
    <padding
        android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"/><!-- 各方向的间隔 -->

    <!-- 大小 -->
    <size
        android:width="50dp"
        android:height="50dp"/><!-- 宽度和高度 -->

    <!-- 填充 -->
    <solid
        android:color="@android:color/white"/><!-- 填充的颜色 -->

    <!-- 描边 -->
    <stroke
        android:width="2dp"
        android:color="@android:color/black"
        android:dashWidth="1dp"
        android:dashGap="2dp"/>

</shape>

shape(图形)

shape图形的根元素
android:shape:定义shape的值,必须是下面的之一:

  • “rectangle” 矩阵,这也是默认的shape
  • “oval” 椭圆
  • “line” 一条水平的直线。这种shape必须使用 元素来定义这条线的宽度
  • “ring” 圆环

下面的属性只有当 android:shape=”ring”才使用:

android:innerRadius:内环的半径。一个尺寸值(dip等等)或者一个尺寸资源。
android:innerRadiusRatio:这个值表示内部环的比例,例如,如果innerRadiusRatio = ” 5 “,那么内部的半径等于环的宽度除以5。这个值会被innerRadius重写。 默认值是9。
android:thickness:环的厚度,是一个尺寸值或尺寸的资源。
android:thicknessRatio:厚度的比例。例如,如果thicknessRatio= ” 2 “,然后厚度等于环的宽度除以2。这个值是被innerRadius重写, 默认值是3。
android:useLevel:如果用在 LevelListDrawable里,那么就是true。如果通常不出现则为false。

corners(圆角)

android:radius 指定了所有圆角的圆度,你也可以单独设置每个角的圆度,如:

<corners
    android:topLeftRadius="2dp"
    android:topRightRadius="2dp"
    android:bottomLeftRadius="2dp"
    android:bottomRightRadius="2dp"/>

gradient(渐变)

填充颜色的渐变效果

android:angle :渐变的角度。 0 代表从 left 到 right。90 代表bottom到 top。必须是45的倍数,默认为0
android:centerX:渐变中心的相对X坐标,在0到1.0之间。
android:centerY:渐变中心的相对Y坐标,在0到1.0之间。
android:startColor:渐变开始的颜色值。
android:centerColor:渐变中的颜色值。基于startColor和endColor之间。
android:endColor:渐变结束的颜色。
android:gradientRadius:渐变的半径。只有在 android:type=”radial”才使用
android:type:渐变的模式,下面值之一:
“linear” 线形渐变。这也是默认的模式
“radial” 辐射渐变。startColor即辐射中心的颜色
“sweep” 扫描线渐变。
android:useLevel:如果在LevelListDrawable中使用,则为true

padding(间隔)

内容与视图边界的距离

android:left:左边填充距离.
android:top:顶部填充距离.
android:right:右边填充距离.
android:bottom:底部填充距离.

size(大小)

这个shape的大小

android:height:这个shape的高度。
android:width:这个shape的宽度。

solid(填充)

填充这个shape的颜色

android:color:颜色值,十六进制数,或者一个Color资源

stroke(描边)

这个shape使用的描边,当android:shape=”line”的时候,必须设置该元素。

android:width:描边的粗细。
android:color:描边的颜色
android:dashGap:每画一条线就间隔多少。只有当android:dashWidth也设置了才有效。
android:dashWidth:每画一条线的长度。只有当 android:dashGap也设置了才有效。
dashGap和dashWidth设置这条线为虚线,其中dashWidth表示没一段的线宽,dashGap表示之间的间隔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值