代码之家  ›  专栏  ›  技术社区  ›  Cruces

如何根据api版本在android xml文件中使用不同的属性?

  •  1
  • Cruces  · 技术社区  · 8 年前

    我正在创建一个使用大量图标的项目,为了方便地支持多个屏幕,我使用矢量图形(我认为它们被称为SVG路径)创建了图标,在我的设备中运行良好。

    不幸的是,当我尝试在较旧的设备上使用它(任何安卓低于5.0的设备)时,我遇到了一个充气器异常。

    搜索之后,我发现为了在这些设备上使用矢量图形,而不是使用

    android:src
    

    我必须使用

    app:srcCompat
    

    这确实解决了这个问题,但现在当我将它部署到一个更新的设备上时,图标不会显示出来(至少它不会崩溃,所以这就是问题所在)

    是否有办法根据api版本定义某种样式

    这样我就可以做一些事情了:

    <style name="android.api.21">
        <item name="android:src">ic_menu</item>
    </style>
    
    <style name="android.api.19">
        <item name="app:srcCompat">ic_menu</item>
    </style>
    

    提前感谢您提供的任何帮助

    1 回复  |  直到 8 年前
        1
  •  2
  •   Alex    8 年前

    只需使用相同的样式名(例如,styles.xml),并在资源文件夹(app/main/res)中使用命名创建不同的文件夹 价值观 (通用版本), 值-v21 (适用于API 21,棒棒糖5.0), 值-v19 (API 19,KitKat 4.4)等。