Android基础知识Android开发Android知识

[安卓基础] Android自定义shape

2017-11-26  本文已影响62人  贪玩学爸

<shape>

xml定义的通用形状,<shape>标签必须作为根节点,或者包含在<item>标签元素里面,作为layer-list、selector等的子元素。

1、语法

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >
    <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
    <gradient
        android:angle="integer"
        android:centerX="float"
        android:centerY="float"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size
        android:width="integer"
        android:height="integer" />
    <solid
        android:color="color" />
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>

2、包含的标签元素以及相应的属性

<shape>

必须作为根元素

<size>

定义形状的大小,当作为背景需要填充到view里的时候,会按照size定义的比例进行等比例缩放。ImageView中可以通过将 android:scaleType 设置为"center"来显示XML文件里设置的大小。

<solid>

定义形状的填充色

<corners>

设置形状的圆角,只对矩形有用。

<padding>

设置内边距,但是这个内边距什么情况下生效呢?我在shape里面设置了

<gradient>

定义形状的渐变颜色

<stroke>

定义形状的边框

如果想实现虚线边框效果,必须同时定义以下两个属性:

参考资料

Android API Reference

上一篇 下一篇

猜你喜欢

热点阅读