为了在
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);