频道栏目
首页 > 资讯 > Android > 正文

Android中使用svg

17-05-15        来源:[db:作者]  
收藏   我要投稿

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变换
 

相关TAG标签
上一篇:android项目开发之-动态任务分配功能的实现
下一篇:mysql root密码忘了怎么办?(MAC,也适用与unix和windows)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站