Glide中有显示svg的例子,链接如下 sample/svg
- 默认svg显示出来是比较小的,我们需要修改
SvgDecoder.java
文件,让svg的大小和ImageView一致
public Resource<SVG> 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 file is loading too small
显示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 "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"26.327ex\" height=\"7.843ex\" style=\"vertical-align: -2.769ex; margin-top: -0.332ex; margin-bottom: -0.569ex;\" viewBox=\"0 -1939.5 11335.3 3376.7\" role=\"img\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"MathJax-SVG-1-Title\">\n" +
"<title id=\"MathJax-SVG-1-Title\">\\\\ce{N2 + 3H2 <=>[高温、加压][催化剂] 2NH3}</title>\n" +
"<defs aria-hidden=\"true\">\n" +
"<path stroke-width=\"1\" id=\"E1-MJMAIN-4E\" d=\"M42 46Q74 48 94 56T118 69T128 86V634H124Q114 637 52 637H25V683H232L235 680Q237 679 322 554T493 303L578 178V598Q572 608 568 613T544 627T492 637H475V683H483Q498 680 600 680Q706 680 715 683H724V637H707Q634 633 622 598L621 302V6L614 0H600Q585 0 582 3T481 150T282 443T171 605V345L172 86Q183 50 257 46H274V0H265Q250 3 150 3Q48 3 33 0H25V46H42Z\"></path>\n" +
"<path stroke-width=\"1\" id=\"E1-MJMAIN-32\" d=\"M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z\"></path>\n" +
"<path stroke-width=\"1\" id=\"E1-MJMAIN-2B\" d=\"M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z\"></path>\n" +
"<path stroke-width=\"1\" id=\"E1-MJMAIN-33\" d=\"M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z\"></path>\n" +
"<path stroke-width=\"1\" id=\"E1-MJMAIN-48\" d=\"M128 622Q121 629 117 631T101 634T58 637H25V683H36Q57 680 180 680Q315 680 324 683H335V637H302Q262 636 251 634T233 622L232 500V378H517V622Q510 629 506 631T490 634T447 637H414V683H425Q446 680 569 680Q704 680 713 683H724V637H691Q651 636 640 634T622 622V61Q628 51 639 49T691 46H724V0H713Q692 3 569 3Q434 3 425 0H414V46H447Q489 47 498 49T517 61V332H232V197L233 61Q239 51 250 49T302 46H335V0H324Q303 3 180 3Q45 3 36 0H25V46H58Q100 47 109 49T128 61V622Z\"></path>\n" +
"<path stroke-width=\"1\" id=\"E1-MJMAIN-21CC\" d=\"M691 660Q691 671 711 671Q720 671 723 670T730 664T735 650T746 624T768 585Q797 538 836 499T897 445T933 423Q941 418 942 416T944 405T937 390H70Q56 397 56 410T70 430H852Q802 468 762 524T707 615T691 660ZM55 256Q56 264 62 270H929Q944 261 944 250T929 230H148Q149 229 165 215T196 185T231 145T270 87T303 16Q309 -1 306 -5Q304 -11 288 -11Q279 -11 276 -10T269 -4T264 10T253 36T231 75Q172 173 69 235Q59 242 57 245T55 256Z\"></path>\n" +
"</defs>\n" +
"<g stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" transform=\"matrix(1 0 0 -1 0 0)\" aria-hidden=\"true\">\n" +
" <use xlink:href=\"#E1-MJMAIN-4E\" x=\"0\" y=\"0\"></use>\n" +
" <use transform=\"scale(0.707)\" xlink:href=\"#E1-MJMAIN-32\" x=\"1061\" y=\"-435\"></use>\n" +
" <use xlink:href=\"#E1-MJMAIN-2B\" x=\"1426\" y=\"0\"></use>\n" +
" <use xlink:href=\"#E1-MJMAIN-33\" x=\"2427\" y=\"0\"></use>\n" +
"<g transform=\"translate(3094,0)\">\n" +
" <use xlink:href=\"#E1-MJMAIN-48\" x=\"0\" y=\"0\"></use>\n" +
" <use transform=\"scale(0.707)\" xlink:href=\"#E1-MJMAIN-32\" x=\"1061\" y=\"-435\"></use>\n" +
"</g>\n" +
"<g transform=\"translate(4576,0)\">\n" +
" <use xlink:href=\"#E1-MJMAIN-21CC\" x=\"1429\" y=\"0\"></use>\n" +
"<g transform=\"translate(659,-788)\">\n" +
"<g transform=\"translate(233,-240)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">催</text>\n" +
"<g transform=\"translate(659,0)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">化</text>\n" +
"</g>\n" +
"<g transform=\"translate(1319,0)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">剂</text>\n" +
"</g>\n" +
"</g>\n" +
"</g>\n" +
"<g transform=\"translate(0,1087)\">\n" +
"<g transform=\"translate(233,150)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">高</text>\n" +
"<g transform=\"translate(659,0)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">温</text>\n" +
"</g>\n" +
"<g transform=\"translate(1319,0)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">、</text>\n" +
"</g>\n" +
"<g transform=\"translate(1978,0)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">加</text>\n" +
"</g>\n" +
"<g transform=\"translate(2638,0)\">\n" +
"<text font-family=\"monospace\" stroke=\"none\" transform=\"scale(50.74127551116547) matrix(1 0 0 -1 0 0)\">压</text>\n" +
"</g>\n" +
"</g>\n" +
"</g>\n" +
"</g>\n" +
" <use xlink:href=\"#E1-MJMAIN-32\" x=\"8713\" y=\"0\"></use>\n" +
"<g transform=\"translate(9380,0)\">\n" +
" <use xlink:href=\"#E1-MJMAIN-4E\"></use>\n" +
" <use xlink:href=\"#E1-MJMAIN-48\" x=\"750\" y=\"0\"></use>\n" +
" <use transform=\"scale(0.707)\" xlink:href=\"#E1-MJMAIN-33\" x=\"2122\" y=\"-434\"></use>\n" +
"</g>\n" +
"</g>\n" +
"</svg>\n";
}