Android显示SVG

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

  1. 默认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

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

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

  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    &lt;=&gt;[高温、加压][催化剂] 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";
  }
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,368评论 2 44
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,142评论 25 707
  • 12月5日 周二 晴天 现在和你发微信,只要不是正事,你都不会回。没有你消息的日子像是地狱。 好想知道你最近好...
    BryanWang阅读 205评论 0 0
  • 如果有一天 你说不爱了 我会潇洒放你走 如果有一天 你说后悔当初了 我会对你说我一直在你身后 如果有一天 你要离开...
    美文小屋阅读 928评论 0 1
  • http://www.chenzhongjin.cn/2015/06/27/Android开源项目分类汇总【老外汇...
    JuSong阅读 256评论 0 1