อัปเดต: อย่าใช้คำตอบเก่านี้ดีกว่าใช้สิ่งนี้: https://stackoverflow.com/a/39266840/4031815
ตกลงหลังจากการวิจัยเป็นเวลาหลายชั่วโมงฉันพบว่าsvg-androidนั้นใช้งานง่ายมากดังนั้นฉันจึงออกจากคำแนะนำทีละขั้นตอน:
ดาวน์โหลด lib จาก: https://code.google.com/p/svg-android/downloads/list
เวอร์ชันล่าสุดในขณะที่เขียนนี่คือ:svg-android-1.1.jar
ใส่ขวดในlib
dir
บันทึกไฟล์ * .svg ของคุณในres/drawable
dir (ในผู้วาดภาพประกอบเป็นเรื่องง่ายเหมือนการกดบันทึกเป็นและเลือก svg)
โค้ดต่อไปนี้ในกิจกรรมของคุณโดยใช้ไลบรารี svg:
ImageView imageView = (ImageView) findViewById(R.id.imgView);
SVG 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);