Android XML 绘图

Thu 06 October 2016

简介

Android 的 XML 绘图主要涉及到三个元素:shape,layer-list,selector

  • shape是基本的元素,shape描述了基本图形,如rectangle,oval,line,ring,以及相关的属性.
  • layer-list 是shape的组合,可以将多个 shape 叠加起来,组成更加复杂的图形。
  • selector 则用来按照空间的状态,如button 是否被press,是否获得focus等,选择不同的图片或者形状元素。

shape

shape 有四种:

  • rectangle: 矩形,可以通过设置conner得到圆角
  • oval:可以画椭圆,圆形
  • line:虚线,实线
  • ring:圆环

shape所支持的参数:

  • size:制定大小
  • solid:填充颜色
  • stroke:边框的属性,宽度,颜色,类型等
  • conners:conner的半径,配合rectangle使用,可以获得圆角矩形
  • gradient:颜色渐变
  • padding:

下面列举具体有哪些属性

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    //认为rectangle
    android:shape=["rectangle"|"oval"|"line"|"ring"]>
    <corners //当shape="rectangle"时使用
        //半径,会被后面的单个半径属性覆盖
        android:radius="integer"
        android:topLefTradius="integer"
        android:topRighTradius="integer"
        android:bottomLegTradius="integer"
        android:bottomrighTradius="integer"/>
    <gradient   //渐变
        android:angle="integer"
        android:centerX="integer"
        android:centerY="integer"
        android:centerColor="color"
        android:endColor="color"
        android:gradienTradius="integer"
        android:startColor="color"
        android:type=["linear"|"radial"|"sweep"]
        android:useCenter=["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"< 大专栏  Android XML 绘图/span>/>
    <stroke //指定边框
        android:width="integer"
        android:color="color"
        //虚线宽度
        android:dashWidth="integer"
        //虚线间隔宽度,如果需要实线,则不设置此项和上面一项
        android:dashGap="integer"/>
</shape>

layer-list

layer-list 可以将多个shape组合在一起,形成更加复杂的图形,比如可以形成阴影等。 用例子说话:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item//距离上下左右的距离
        android:top="4dp"
        android:left="4dp">
        <shape android:shape="oval">
            <solid android:color="#FF333333" />
        </shape>
    </item>

    <item>
        <shape android:shape="oval">
            <solid android:color="@color/annotation_color_blue" />
            <stroke
                android:width="1dp"
                android:color="#FFF"
                android:dashGap="0dp" />
            <size
                android:width="48dp"
                android:height="48dp" />
        </shape>
    </item>
</layer-list>

以上xml绘制的图形如下所示:

分享图片

selector

selector 的元素可以是xml绘制的推行,也可以是颜色,图片等等 仍然用例子说话:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@mipmap/bg_input_p" />
    <item android:drawable="@mipmap/bg_input_n" />
</selector>

Category: 工具 Tagged: android

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...