图文详解 Andorid 中用 Shape 定义 GradientDrawable

682 查看

Android中提供了各种类型的Drawable,也可以用XML定义各种Drawable。本文重点讲述如何用XML中的shape节点定义GradientDrawable。

用XML定义的drawable文件放在res/drawable目录下。

用XML文件定义GradientDrawable的语法如下所示:

该文件以<shape>为根结点,其shape属性可取四种值:rectangle、oval、line或ring。以上语法格式中虽然列出了很多属性,但是并不是对于所有类型的shape都支持这些属性。下面分别对这四种shape进行讲解。


rectangle

在res/drawable下面用XML文件定义了一个名为rectangle的GradientDrawable,其对应的shape值为rectangle,表明我们定义的drawable的形状是矩形。在layout文件中定义了一个TextView,其使用了上述drawable,如下所示:

  • solid

rectangle.xml定义如下所示:

在上面的XML文件中,我们将shape属性设置为rectangle,我们将<solid>节点的color属性设置为绿色,<solid>属性是用来设置面的填充色的,效果如下所示:

20151230205832773

  • corners
    <corners>节点用于设置drawable四个拐角的半径,对应的XML文件如下所示: