zoukankan      html  css  js  c++  java
  • SVG

    SVG(Scalable Vector Graphics)  可缩放的矢量图,是用XML语言做的可缩放的矢量图 ;

    位图与矢量图

    位图:是基于颜色的描述。图上的每个像素点整体构成了一张图片。用PS做的图都是位图。

    矢量图:是基于数学的描述。矢量图是用数学中的直线和曲线去描绘图的边框,然后用颜色去填充这些线组成的区域。用AI和Coredraw做的图是矢量图。

    SVG的优缺点

    优点:

    1. 文件小,占空间小,网络传输快.

    2. 缩放不变形

    3. 可高精度打印

    4. 可用文本编辑器编辑

    缺点:

    难以表现色彩层次丰富的逼真图像效果。

    矢量图的使用方法

    1. 直接用浏览器打开

    2. 用img的src属性调用

     <img src ='../images/XX.svg' alt='' />
    

    3. 可以做为盒子的背景图调用

        
    div {
        background:url(images/XX.svg);
    }

    4. 使用svg标签调用

    <svg  xmlns='http://www.w3.org/2000/svg' width='500' height='400' >
        <rect x='50' y='50' width='250' height='100' rx='20' ry='20' fill='#f60' stroke='#333' stroke-width='5'/>
    </svg>

    svg标签上有一个命名空间,是为了解决重名的问题。可以认为是一种固定的写法:xmlns=”http://www.w3.org/2000/svg”

    基本图形

    rect    矩形 可以写成双标签 ,也可以写成单标签

    <svg  xmlns='http://www.w3.org/2000/svg' width='500' height='400' >
        <rect x='50' y='50' width='250' height='100' rx='20' ry='20' fill='#f60' stroke='#333' stroke-width='5'/>
        <rect x='50' y='50' width='250' height='100' rx='20' ry='20' fill='#f60' stroke='#333' stroke-width='5'></rect>
    </svg>

    基本参数:

    circle 圆形

    ellipse   椭圆

    line  画线段

     

    polyline   多条线 

    polygon  多边形

    非基本图形用path

    基本属性

    fill           表示填充的颜色

    stroke        表示描边

    stroke-width   表示描边的宽度

     SVG动画

    <animate attributeType=”XML” attributeName=”发生动画的属性名” from=”起始值” to=”结束值” dur=”动画时间” fill=”freeze” begin=”开始时间” repeatCount=”indefinite”></animate>

    SVG动画是通过animate标签实现的。要嵌套在发生动画的标签里面。

    attributeType    表示发生动画属性的类型,因为SVG是用XML语言写的,所以attributeType就是XML ;

    attributeName  表示发生动画属性名

    from                  发生动画的起始位置

    to                      发生动画的终止位置

    dur(duration的前三个字母)   动画时长

    fill=”freeze”      表示动画停留在终点。在CSS3中,用的是forwards,在SVG中,用的是freeze。

    repeatCount   表示动画运行的次数

    repeatCount="indefinite"   表示无数次运动,在CSS3中,用的infinite,在SVG中,用的是indefinite。

    如果需要往复运动,需要写两个动画,一个是从起点到终点;另一个是从终点到起点。然后用begin属性设置他们各自动画的开始时间,一个animate的begin设置为”0s;第二个动画.end”;第二个animate的begin设置为”第一个动画.end”。

    在”动画.end”之后可以添加一个时间,以表示等待的时长。

    <svg  xmlns='http://www.w3.org/2000/svg' width='1500' height='400' >
    
        <rect x="100" y="100" width="100" height="100" fill="orange">
            <animate id="leftToRight" attributeType="XML" attributeName="x" from="100" to="1000" dur="3s" begin="0s;rightToLeft.end+2s" fill="freeze" />
            <animate id="rightToLeft" attributeType="XML" attributeName="x" from="1000" to="100" dur="3s" begin="leftToRight.end+2s" fill="freeze" />
            <animate attributeType="XML" attributeName="fill" from="orange" to="blue" dur="12s" fill="freeze" />
        </rect>
    
    </svg>
  • 相关阅读:
    Eclipse / android studio 添加第三方jar包 步骤
    Android checkbox 自定义点击效果
    Android 程序打包和安装过程
    Android 基础
    (转)Genymotion安装virtual device的“unable to create virtual device, Server returned Http status code 0”的解决方法
    (转)eclipse 导入Android 项目 步骤
    微信开放平台注册 步骤
    Android Studio 初级安装
    数组
    作用域问题代码
  • 原文地址:https://www.cnblogs.com/qcxc/p/7420630.html
Copyright © 2011-2022 走看看