android 显示svg图片,Android显示SVG

Glide中有显示svg的例子,链接如下 sample/svg

默认svg显示出来是比较小的,我们需要修改SvgDecoder.java文件,让svg的大小和ImageView一致

public Resource decode(@NonNull InputStream source, int width, int height,

@NonNull Options options)

throws IOException {

try {

Log.e("liang","width:" + width + ",height=" + height);

SVG svg = SVG.getFromInputStream(source);

svg.setDocumentWidth(width); //需要添加部分

svg.setDocumentHeight(height); //需要添加部分

return new SimpleResource<>(svg);

} catch (SVGParseException ex) {

throw new IOException("Cannot load SVG from stream", ex);

}

}

显示svg的ImageView设置android:scaleType="fitXY",其他类型显示都有问题

例子中是显示本地文件和网络文件,我们还可以直接显示内容

private void loadRes() {//显示本地文件

Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/"

+ R.raw.a);

requestBuilder.load(uri).into(imageViewRes);

}

private void loadNet() {//显示网络文件

Uri uri = Uri.parse("http://www.clker.com/cliparts/u/Z/2/b/a/6/android-toy-h.svg");

requestBuilder.load(uri).into(imageViewNet);

}

private void loadContent() {//显示svg内容

requestBuilder.load(getSvgString().getBytes()).into(imageViewRes);

}

private String getSvgString(){

return "\n" +

"

\\\\ce{N2 + 3H2 <=>[高温、加压][催化剂] 2NH3}\n" +

"\n" +

"\n" +

"\n" +

"\n" +

"\n" +

"\n" +

"\n" +

"\n" +

"\n" +

" \n" +

" \n" +

" \n" +

" \n" +

"\n" +

" \n" +

" \n" +

"\n" +

"\n" +

" \n" +

"\n" +

"\n" +

"催\n" +

"\n" +

"化\n" +

"\n" +

"\n" +

"剂\n" +

"\n" +

"\n" +

"\n" +

"\n" +

"\n" +

"高\n" +

"\n" +

"温\n" +

"\n" +

"\n" +

"、\n" +

"\n" +

"\n" +

"加\n" +

"\n" +

"\n" +

"压\n" +

"\n" +

"\n" +

"\n" +

"\n" +

" \n" +

"\n" +

" \n" +

" \n" +

" \n" +

"\n" +

"\n" +

"\n";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android SVG (Scalable Vector Graphics) 是一种用于在 应用程序中显示可缩放矢量图形的格式。SVG 图像使用 XML 语法进行描述,可以无损地缩放和放大,而不会失去清晰度和质量。 Android 提供了一些方法来在应用程序中加载和显示 SVG 图像。最常用的方法是使用第三方库,例如 AndroidSVGSvg-androidAndroidSVG Library。这些库提供了用于解析和渲染 SVG 图像的类和方法。 要在 Android 应用程序中使用 SVG 图像,首先需要将 SVG 文件保存在项目的资源文件夹中。然后,可以使用相应的库来加载和显示 SVG 图像。通常,需要将 SVG 图像转换为 Android 可以理解和显示的格式,例如 Bitmap 或 Drawable。 以下是一个简单的示例代码,演示如何使用 AndroidSVG 库加载和显示 SVG 图像: ```java import com.caverock.androidsvg.SVG; import com.caverock.androidsvg.SVGParseException; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Picture; import android.graphics.drawable.PictureDrawable; import android.widget.ImageView; public void loadSvgImage(Context context, ImageView imageView, int svgResId) { try { SVG svg = SVG.getFromResource(context, svgResId); Picture picture = svg.renderToPicture(); PictureDrawable drawable = new PictureDrawable(picture); imageView.setImageDrawable(drawable); } catch (SVGParseException e) { e.printStackTrace(); } } ``` 在上面的示例中,`loadSvgImage` 方法接收一个上下文对象、一个 ImageView 和一个指向 SVG 文件的资源 ID。它使用 AndroidSVG 库从资源中加载 SVG 图像,并将其渲染为 PictureDrawable,然后将其设置为 ImageView 的图像。 这只是一个基本示例,你可以根据自己的需求进行更多的定制和扩展。希望这能帮助你开始在 Android 应用程序中使用 SVG 图像!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值