在Android中使用SVG的最简单的方法是什么?

为了在Android中使用svg,我find了无数的库,避免了每个分辨率的不同分辨率和丢弃文件的令人沮丧的创build,当应用程序有很多图标或图像时,这变得非常烦人。

任何人都可以像在Android中使用SVG一样简单地使用一步一步的过程,我相信这也会帮助很多人。

此外,我使用Android Studio和Illustrator来生成我的图标和图像。

    首先你需要通过以下简单的步骤导入svg文件。

    1. 右键点击drawable
    2. 点击新build
    3. selectvector资产

    如果您的电脑中有图像,请select本地的svg文件。 之后,select图像path,如果需要,还可以在对话框的右侧select更改图像大小的选项。 以这种方式svg图像导入您的项目之后,使用这个图像使用相同的程序

     @drawable/yourimagename 

    更新 :请注意,这个答案是从2015年开始的,现在有更好更简单的方法在Android上使用svg。 所以用一粒盐来回答这个问题。

    经过几个小时的研究后,我发现svg-android非常容易使用,所以我要一步一步地离开这里:

    1. 从以下url下载lib: https : //code.google.com/p/svg-android/downloads/list在写这个的最新版本是: svg-android-1.1.jar

    2. 把jar放在lib目录下。

    3. 将你的* .svg文件保存在res/drawable dir中(在illustrator中就像按Save as并selectsvg一样简单)

    4. 使用svg库在您的活动中编写以下代码:

       ImageView imageView = (ImageView) findViewById(R.id.imgView); SVG svg = SVGParser.getSVGFromResource(getResources(), R.drawable.example); //The following is needed because of image accelaration in some devices such as samsung imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); imageView.setImageDrawable(svg.createPictureDrawable()); 

    你可以像这样减less样板代码

    很简单,我做了一个简单的类来包含过去的代码,并减less样板代码,如下所示:

     import android.app.Activity; import android.view.View; import android.widget.ImageView; import com.larvalabs.svgandroid.SVG; import com.larvalabs.svgandroid.SVGParser; public class SvgImage { private static ImageView imageView; private Activity activity; private SVG svg; private int xmlLayoutId; private int drawableId; public SvgImage(Activity activity, int layoutId, int drawableId) { imageView = (ImageView) activity.findViewById(layoutId); svg = SVGParser.getSVGFromResource(activity.getResources(), drawableId); //Needed because of image accelaration in some devices such as samsung imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); imageView.setImageDrawable(svg.createPictureDrawable()); } } 

    现在我可以在活动中这样调用它:

      SvgImage rainSVG = new SvgImage(MainActivity.this, R.id.rainImageView, R.drawable.rain); SvgImage thunderSVG = new SvgImage(MainActivity.this, R.id.thunderImageView, R.drawable.thunder); SvgImage oceanSVG = new SvgImage(MainActivity.this, R.id.oceanImageView, R.drawable.ocean); SvgImage fireSVG = new SvgImage(MainActivity.this, R.id.fireImageView, R.drawable.fire); SvgImage windSVG = new SvgImage(MainActivity.this, R.id.windImageView,R.drawable.wind); SvgImage universeSVG = new SvgImage(MainActivity.this, R.id.universeImageView,R.drawable.universe); 

    Android Studio从1.4开始支持SVG

    这是一个关于如何导入的video。

    右键点击app => New => Vector Assets

    然后将出现“configurationvector资产”窗口

    select“资产types”本地文件

    然后浏览到您的svg文件的位置。

    select它并点击Next&Finish。

    检查Drawables文件夹。

    或在这里 查看video

    尝试SVG2VectorDrawable插件。 转到首选项 – >插件 – >浏览插件并安装SVG2VectorDrawable。 非常适合将下垂文件转换为vector绘制。 安装完成后,您可以在帮助(?)图标右侧的工具栏部分find此图标。

    而不是添加增加你的apk大小的库,我会build议你使用http://inloop.github.io/svg2android/将Svg转换为drawable。 并在gradle中添加vectorDrawables.useSupportLibrary = true