【问题标题】:How to show the SVG image in the android imageview如何在 android imageview 中显示 SVG 图像
【发布时间】:2014-09-23 05:17:57
【问题描述】:

我已经从谷歌代码下载了 svg-android 库,并使用 svg-android 的 SVG 解析器解析了 SVG 图像,如图所示,但它什么也没显示。

SVG 代码

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="500px" height="500px" viewBox="0 0 500 500" enable-background="new 0 0 500 500" xml:space="preserve">
<g id="max_width__x2F__height" display="none">
    <path display="inline" d="M499.001,1v498H1V1H499.001 M500.001,0H0v500h500.001V0L500.001,0z"/>
</g>
<g id="androd">
    <path fill="#9FBF3B" d="M301.314,83.298l20.159-29.272c1.197-1.74,0.899-4.024-0.666-5.104c-1.563-1.074-3.805-0.543-4.993,1.199
        L294.863,80.53c-13.807-5.439-29.139-8.47-45.299-8.47c-16.16,0-31.496,3.028-45.302,8.47l-20.948-30.41
        c-1.201-1.74-3.439-2.273-5.003-1.199c-1.564,1.077-1.861,3.362-0.664,5.104l20.166,29.272
        c-32.063,14.916-54.548,43.26-57.413,76.34h218.316C355.861,126.557,333.375,98.214,301.314,83.298"/>
    <path fill="#FFFFFF" d="M203.956,129.438c-6.673,0-12.08-5.407-12.08-12.079c0-6.671,5.404-12.08,12.08-12.08
        c6.668,0,12.073,5.407,12.073,12.08C216.03,124.03,210.624,129.438,203.956,129.438"/>
    <path fill="#FFFFFF" d="M295.161,129.438c-6.668,0-12.074-5.407-12.074-12.079c0-6.673,5.406-12.08,12.074-12.08
        c6.675,0,12.079,5.409,12.079,12.08C307.24,124.03,301.834,129.438,295.161,129.438"/>
    <path fill="#9FBF3B" d="M126.383,297.598c0,13.45-10.904,24.354-24.355,24.354l0,0c-13.45,0-24.354-10.904-24.354-24.354V199.09
        c0-13.45,10.904-24.354,24.354-24.354l0,0c13.451,0,24.355,10.904,24.355,24.354V297.598z"/>
    <path fill="#9FBF3B" d="M140.396,175.489v177.915c0,10.566,8.566,19.133,19.135,19.133h22.633v54.744
        c0,13.451,10.903,24.354,24.354,24.354c13.451,0,24.355-10.903,24.355-24.354v-54.744h37.371v54.744
        c0,13.451,10.902,24.354,24.354,24.354s24.354-10.903,24.354-24.354v-54.744h22.633c10.569,0,19.137-8.562,19.137-19.133V175.489
        H140.396z"/>
    <path fill="#9FBF3B" d="M372.734,297.598c0,13.45,10.903,24.354,24.354,24.354l0,0c13.45,0,24.354-10.904,24.354-24.354V199.09
        c0-13.45-10.904-24.354-24.354-24.354l0,0c-13.451,0-24.354,10.904-24.354,24.354V297.598z"/>
</g>
</svg>

【问题讨论】:

  • 也许你觉得你太健谈但你不是!一些代码,你尝试过什么等?
  • 您似乎不明白您的问题有什么问题。我只是想指出您的问题不适合获得任何有用的答案。

标签: java android svg


【解决方案1】:

如果你使用这个svg-android lib(我也这么认为),那么你可以看到有一些tutorials

简而言之,在这种情况下,您应该这样做:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Create a new ImageView
        ImageView imageView = new ImageView(this);
        // Set the background color to white
        imageView.setBackgroundColor(Color.WHITE);
        // Parse the SVG file from the resource
        SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android);
        // Get a drawable from the parsed SVG and set it as the drawable for the ImageView
        imageView.setImageDrawable(svg.createPictureDrawable());
        // Set the ImageView as the content view for the Activity
        setContentView(imageView);
    }

如果您看到了这一点并采取了同样的做法,那么您的 SVG 可能存在问题。您是否尝试在其他地方打开它?或者最好在此处粘贴您的 SVG 源代码,请

【讨论】:

  • 是的,我使用了相同的 SVG 解析器代码并从那里下载了 svg 图像。是否有任何库依赖项..?
  • 看来帮不了你了。请检查 SVGParser 的依赖项是否正确,将 svg 图像放置到 res/raw 文件夹。您也可以尝试在 标记中将标志“android:hardwareAccelerated=false”设置为 AndroidManifest.xml(对于我的手机,当我尝试运行代码时出现此异常:code.google.com/p/osmdroid/issues/detail?id=303)。我可以说,我在 Android 4.0.3 上用相同的 svg 测试了这段代码,一切都像魅力一样运行
猜你喜欢
  • 2019-02-17
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多