1.svg中一般用在js网页中的一种图片
在Android中如何使用呢。
下面是一个链接下载后可以在布局中使用svg
http://pan.baidu.com/s/1nu92kYH
这是一个自定义的svgview通过他可以很好的使用svg文件
使用方法如下:
可以将svg文件放在raw文件夹中然后:
也可以在代码中使用:
pathView = ((PathView) findViewById(R.id.pathview)); SvgPathParser svgPathParser = new SvgPathParser(); try { Path path = svgPathParser.parsePath("M13,33c0.88,0.88,2.75,1.82,5.25,1.75c8.62-0.25,20-2.12,29.5-4.25c1.51-0.34,4.62-0.88,6.62-0.5"); Log.e( "onCreate: ","111" ); Path path1 = svgPathParser.parsePath("M31.75,17.62c0.88,1,1.82,3.26,1.38,5.25C29.38,39.62,26.88,61,28,76.5c0.41,5.7,1.88,10.88,3.38,13.62"); Log.e( "onCreate: ","111222" ); Path path2 = svgPathParser.parsePath("M47.62,44.12c0.75,1.12,1.16,4.39,0.5,6.12C43.5,62.5,36.88,74,22.75,86c-6.86,5.83-15.88,3.75-16.25-8.38C6.16,66.75,19.88,54.5,38.88,50.88c12.42-2.37,27,1.38,30.5,12.75C73.43,76.81,65.62,90,48.5,94.12"); Log.e( "onCreate: ","111222333" ); lists.add(path); lists.add(path1); lists.add(path2); path1111 = new Path(); path1111.addPath(path); path1111.addPath(path1); path1111.addPath(path2); changpath(path); changpath(path1); changpath(path2); // lists.add(path1111); } catch (ParseException e) { e.printStackTrace(); } // Path pathn= makeConvexArrow(109,109); pathView.setPaths(lists); // pathView.setPath(makeConvexArrow(109,109)); pathView.setFillAfter(true); pathView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /* pathView.getPathAnimator(). //pathView.getSequentialPathAnimator(). delay(100). duration(1500) // .interpolator(new AccelerateDecelerateInterpolator()) .start() ;*/ PathView.AnimatorSetBuilder builder=new PathView.AnimatorSetBuilder(pathView); builder.start(); } }); pathView.setPercentage(0.5f);
private Path makeConvexArrow(float length, float height) { final Path path = new Path(); path.moveTo(0.0f, 0.0f); path.lineTo(length / 4f, 0.0f); path.lineTo(length, height / 2.0f); path.lineTo(length / 4f, height); path.lineTo(0.0f, height); path.lineTo(length * 3f / 4f, height / 2f); path.lineTo(0.0f, 0.0f); path.close(); return path; }也可以对转换成path的svg进行缩放:
private void changpath(Path path) { Matrix matrix=new Matrix(); matrix.setScale(4,4); path.transform(matrix); }
其中在代码中设置svg的路径一般都是放在数据库中导出后然后使用进行matrix变换