Android使用 SVG 资源文件(一)

这里就不介绍背景了,直接说说在 Android 中如何使用 SVG资源吧!

使用步骤:

1、SVG资源的源文件

要使用 SVG资源,我们首先得有 svg 资源,在哪里找呢,有很多工具能够生成 SVG资源,比如omnigraffle图形编辑器,我这里生成好了一张 SVG资源的图片

用浏览器打开之后可以看到它的代码

我们所要的就是path 之后的 svg 代码,把它拷贝到我们的代码中

M 6.783868 184 C 6.783868 184 7.349524 160.57912 14.131572 157.31086 C 19.783036 155.677 29.389906 150.7756 31.085964 149.68606 C 32.78275 148.59634 32.78093 143.14954 32.78093 143.69422 C 32.78093 144.23854 20.34669 156.22168 11.870586 156.22168 C 29.9572 140.971 27.130012 136.06888 27.130012 136.06888 C 27.130012 136.06888 12.434786 147.50698 9.04267 146.41762 C 24.302642 132.80062 26.565084 126.26464 26.565084 126.26464 C 26.565084 126.26464 7.349524 136.06888 0 132.25594 C 17.523324 127.35418 22.044022 88.13767 22.044022 88.13767 C 22.044022 88.13767 25.998882 52.18906 28.82607 45.6529 C 29.9572 39.66178 41.26122 -2.27822 91.564273 4.80244 C 141.86809 11.88328 134.52148 75.06544 134.52148 76.69959 C 134.52148 78.333574 135.65042 76.15482 135.65042 81.056866 C 135.65042 85.95886 133.3898 88.13767 133.3898 88.13767 C 133.3898 88.13767 135.65133 93.584493 135.65133 102.84378 C 133.955276 101.20983 133.3898 98.486374 132.259764 100.12038 C 131.69538 106.656376 130.0006 105.022426 126.6083 117.54976 C 126.041916 124.0861 133.955276 128.98804 136.78028 128.98804 C 131.12918 131.16676 140.1713 132.80062 140.1713 132.80062 C 140.1713 132.80062 159.38686 135.52402 166.17091 139.88164 C 172.95351 144.23908 181.43398 169.29364 181.99854 182.91064 C 182.56402 183.99982 6.783868 184 6.783868 184 Z

到这里我们的 svg 资源就已经准备就绪了,接下就是在代码中使用它

2、编写 vector drawable 资源文件

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="600dp"
    android:height="600dp"
    android:viewportHeight="512"
    android:viewportWidth="512">

    <path android:fillColor="#410a0a0a"
        android:pathData="@string/pretty_girl"/>

</vector>

这里解释一下这几个属性;

android:width=”600dp” 实际显示的宽度为600dp

android:height=”600dp” 实际显示的高度为600dp

android:viewportHeight=”512” 矢量限定的宽度为512,这没有单位;

android:viewportWidth=”512” 矢量限定的高度为512

其实以上两个属性,就是我们 svg 图片的宽高

android:pathData=”@string/pretty_girl”,即 图片内容的path路径,path 中的值一般不会超过viewportHeight 和 viewportWidth的值,在这里就是不会超过512

3、运用,与其他 drawable 资源文件一样,直接设置 View 的背景或者 ImageView 的 src 资源

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/id_img"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/pretty_girl"/>

</RelativeLayout>

运行之后效果图如下:

到这里算是大功告成!但是,这个效果只有 Android5.0及之后的版本才支持,所以,研究它没多大意义,就目前而言没多大意义!所以我就在想,能否让低版本的系统也能够支持 SVG矢量图呢?答案是肯定的。下一篇 Android使用 SVG 资源文件(二)会给大家讲解,如何在低版本中使用 SVG文件,如果对 SVG有兴趣的朋友可以继续关注。

这里就不贴代码了,因为只有在 Android5.0以上的系统中才能跑。

时间: 2024-10-08 00:25:03

Android使用 SVG 资源文件(一)的相关文章

Android开发之资源文件存储

本文介绍在Android开发中关于资源文件的存储操作.对于Android资源也是非常重要的,主要包括文本字符串(strings).颜色(colors).数组(arrays).动画(anim).布局(layout).图像和图标(drawable).音频视频(media)和其他应用程序使用的组件. 在Android开发中,资源文件是我们使用频率最高的,无论是string,drawable,还是layout,这些资源都是我们经常使用到的,而且为我们的开发提供了很多方便,不过我们平时接触的资源目录一般都

Android中主要资源文件及文件夹介绍

在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的 1:assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件.2:res文件夹里面的多个文件夹的各自介绍 res/anim/ XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象 res/drawable/ .png..9.png..jpg文件,

android常用的资源文件--values文件夹内文件

Android资源文件--values夹下文件及用法 以下文件皆在values文件夹下.例如:全路径:res/values/string.xml. I>strings.xml文件,定义一些需要在开发中使用的字符串变量和数组,用来实现国际化,使用方法分别为:R.string.自己命名的名称.@string/自己命名的名称. <resources>         <!--属性name="自己命名的名称"-->     <string name=&quo

Android中String资源文件的format方法

很多时候我们感性Google在设计Android时遵守了大量MVC架构方式,可以让写公共代码.美工和具体逻辑开发人员独立出来.有关Android 的资源文件values/strings.xml中如何实现格式化字符串呢? <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">stringdemo</string&

Android学习--Assets资源文件读取及AssetManager介绍

APK安装过程 复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录,Android系统在sdcard上为每一个应用分配了存储路径:/sdcard/Android/data/$(应用的包路径),该路径可以通过 context.getExternalFilesDir 得到,一般应用卸载的时候,该目录也会随之被删除. Android资源文件分为两类: 第一种是res目录下存放

&lt;Android&gt;关于获取资源文件R中的数据

通常我们都会使用context.getResources().getIdentifier(name, type,context.getPackageName())的方法去获取R.java中的数据. type--R其中的内部类名,如"drawable","string","color","dimen","layout"等,这也是我们常用的关于界面所需要获取的数据类型. name--R内部类中的static变量

android删除无用资源文件的python脚本

随着android项目的进行,如果没有及时删除无用的资源时安装包会越来越大,是时候整理一下废弃资源缩小压缩包了,少年! 其实判断一个资源(drawable,layout)是否没有被使用很简单,文件名(不包含后缀)去文件中查找一下就行了,没找到就没有用到,直接删除了就可以了 python的字符串处理相对简单一点,就写了个脚本,供大家参考: import osimport os.pathrootdir = 'D:\HitFm_v2.1.6\hitfm\src' pngFiles = []xmlFil

andriod 资源文件之存取操作

来自:http://blog.csdn.net/jianghuiquan/article/details/8569235 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent&quo

(转载)Android xml资源文件中@、@android:type、@*、?、@+引用写法含义以及区别

原帖地址:http://blog.csdn.net/zfrong/article/details/7332545 Android xml资源文件中@.@android:type.@*.?.@+引用写法含义以及区别 一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor=&