在Android中使用svg最简单的方法?

为了在 Android中使用svg,我发现了大量的图书馆,并避免了令人沮丧的创建不同的分辨率,并为每个分辨率丢弃文件,这在应用程序有很多图标或图像时变得非常烦人.

任何人都可以像Android一样使用最简单的使用SVG的一步一步的过程,我相信这也将帮助许多其他人.

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

编辑:

底部添加答案给那些感兴趣的人.

解决方法

好的,经过几个小时的研究,我发现svg-android很容易使用,所以我一步一步的说明:

>下载lib从:https://code.google.com/p/svg-android/downloads/list
撰写本文时最新版本是:svg-android-1.1.jar
>将jar放在lib目录下.
>将您的* .svg文件保存在res / drawable dir中(在插画中,按Save as as save as as select svg)
>使用svg库在您的活动中编写以下内容

ImageView imageView = (ImageView) findViewById(R.id.imgView);
SVGParser 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());

您可以减少这样的样板代码

很简单,我做了一个简单的类来包含过去的代码,并减少了样板代码,像这样:

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