1.svg中一般用在js网页中的一种图片
在Android中如何使用呢。
下面是一个链接下载后可以在布局中使用svg
http://pan.baidu.com/s/1nu92kYH
这是一个自定义的svgview通过他可以很好的使用svg文件
使用方法如下:
可以将svg文件放在raw文件夹中然后:
<com.example.administrator.svg2.PathView
android:layout_width="150dp"
android:layout_height="150dp"
app:pathColor="@android:color/black"
app:svg="@raw/ironman"
app:pathWidth="2dp"
android:id="@+id/pathview"/>
也可以在代码中使用:
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变换