Android:drawable:shape 简单概括总结

2016年01月14日 Android 暂无评论 阅读1527次

Android:drawable:shape 简单概括总结

shape已经用过不少了,但感觉每次用到还需要上网搜资料自己猜能完全写出来,所以认为还有必要拿出来简单总结一下。

shape下面的标签有以下六个。

  • corners
  • gradient
  • padding
  • size
  • solid
  • stroke

这六个标签下,又有不同的各自所属属性。接下来一个个地说。

  • corners 圆角效果

    • android:radius 整体设置四个角的圆角半径[dimension]
    • android:bottomLeftRadius
    • android:bottomRightRadius
    • android:topLeftRadius
    • android:topRightRadius

    单独设置某个角的圆角半径[dimension],可以只用第一个为四个角设置同样的圆角半径,也可以用四个方位角分别设置。

    如果不希望有圆角效果,这个corners可以完全不写。

  • gradient 渐变效果

    • android:angle="45"
    • android:centerColor="#888888"
    • android:centerX="0"
    • android:centerY="0"
    • android:endColor="@android:color/black"
    • android:gradientRadius="90"
    • android:startColor="@android:color/white"
    • android:type="radial"
    • android:useLevel="false"

    android:angle表示方向角度;当angle=0时,渐变色是从左向右,然后逆时针方向转,当angle=90时为从下往上;angle必须为45的整数倍

    android:gradientRadius表示渐变的半径(当 android:type="radial" 时才使用。单独使用 android:type="radial"会报错)

    android:type可取值为:["linear" | "radial" | "sweep"]

    android:centerX 整型 渐变中心X点坐标的相对位置

    android:centerY 整型 渐变中心Y点坐标的相对位置

    android:useLevel ["true" | "false"] 如果要使用LevelListDrawable对象,就要设置为true。设置为true无渐变。false有渐变色

  • padding 间隔距离

    • android:bottom
    • android:left
    • android:right
    • android:top

    这个和布局中的android:padding 一样理解。也就是控件里面的内容距离控件边框的距离[dimension]

  • size 大小

    • android:height
    • android:width

    这个解释设置该控件到底有多宽有多高了。[dimension]

★注意点1:

若应用的控件在布局文件中设置了android:layout_width="match_parent"/android:layout_height="match_parent"时,则此size设置的宽高属性就会无效。

★注意点2:

若该shape的padding中有设置间距大小,则控件的实际显示大小也会变化,此size设置的宽高属性也会无效。

  • solid 填充颜色

    • android:color

      只有这么一个属性可设置。也就是应用控件的背景颜色。[color]

  • stroke 外围边框

    • android:dashGap
    • android:dashWidth
    • android:width
    • android:color

android:width 外边框的宽度

android:color 外边框的颜色如果想要虚线的外边框,android:dashGap和android:dashWidth要设置,并且任何一个属性都不能为0;

如果不想要虚线的外边框,android:dashGap和android:dashWidth不写,或将其置为0

用一段代码贴出来shape会用到的标签和属性。



<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
    android:bottomLeftRadius="4dp"
    android:bottomRightRadius="4dp"
    android:radius="45dp"
    android:topLeftRadius="4dp"
    android:topRightRadius="4dp" />
<gradient
    android:angle="45"
    android:centerColor="#888888"
    android:centerX="0"
    android:centerY="0"
    android:endColor="@android:color/black"
    android:gradientRadius="90"
    android:startColor="@android:color/white"
    android:type="radial"
    android:useLevel="true" />
<padding
    android:bottom="5dp"
    android:left="5dp"
    android:right="5dp"
    android:top="5dp" />
<size
    android:height="30dp"
    android:width="80dp" />
<solid android:color="#108008" />
<stroke
    android:dashGap="1dp"
    android:dashWidth="0dp"
    android:width="0dp"
    android:color="@android:color/black" />
</shape>



OK 先总结到这里,以后用到 shape 应该有本文就能基本解决了。

分享本文至:

WRITTEN BY

avatar
本文标签:androidshape
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

欢迎留言




用户登录

sitemap