创建矢量可绘制对象时,可以在dp中设置其大小。默认值为24dp x 24dp。

  • 如果我在应用中使用的矢量大小与24dp x 24dp不同,则这些测量对性能是否有影响?同样针对21岁以下的API(我使用app:srcCompat显示图像)。
  • 当使用较低的API且系统将其缩减时,向量大小重要吗?
  • 除了我应用wrap_content时的默认大小之外,这些度量对我的使用是否重要?
  • 最佳答案

    我可能无法回答您所有的问题,但是DP大小很重要,如果您不通过棒棒糖之前版本的支持库使用矢量可绘制对象,那肯定很重要。

    要启用支持向量可绘制对象,必须将以下内容添加到应用程序的gradle构建文件中:

    android {
        defaultConfig {
            vectorDrawables.useSupportLibrary = true
        }
    }
    

    参见https://android-developers.googleblog.com/2016/02/android-support-library-232.html

    如果这不是您应用程序构建文件的一部分,则Android Studio会为所有具有已定义DP大小的Lollipop之前版本生成PNG。因此,如果您的向量定义了24dp,并且将其用作128dp图形,则在棒棒糖之前的版本中,它很可能看起来不太好,因为将使用24dp PNG。

    生成的PNG可以在以下位置找到:
    app\build\generated\res\pngs\...
    

    反之,如果向量为128dp,并且将其用作24dp图形,则由于缩放,按比例缩小的PNG图形可能也无法达到预期的完美效果,并且由于PNG太大,您可能会浪费一些文件大小。

    我从来没有真正看过这对表演意味着什么...

    关于Android Vector Assets : Do dp measurements only matter for "wrap content"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45900878/

    10-10 08:33