CẬP NHẬT: KHÔNG sử dụng câu trả lời cũ này, tốt hơn nên sử dụng câu trả lời này: https://stackoverflow.com/a/39266840/4031815
Ok sau vài giờ nghiên cứu tôi thấy svg-android khá dễ sử dụng, vì vậy tôi sẽ rời khỏi đây từng bước hướng dẫn:
tải lib từ: https://code.google.com.vn/p/svg-android/doads/list
Phiên bản mới nhất tại thời điểm viết bài này là:svg-android-1.1.jar
Đặt bình trong lib
dir.
Lưu tệp * .svg của bạn trong res/drawable
thư mục (Trong phần minh họa dễ dàng như nhấn Save as và chọn svg)
Mã sau đây trong hoạt động của bạn bằng thư viện 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());
Bạn có thể giảm mã soạn sẵn như thế này
Rất dễ dàng Tôi đã tạo một lớp đơn giản để chứa mã quá khứ và giảm mã soạn sẵn, như thế này:
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());
}
}
Bây giờ tôi có thể gọi nó như thế này trong hoạt động:
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);