Android Vector资产:dp测量只对"包装内容"有影响吗?

Flo*_*her 13 android vector

当我创建一个矢量drawable时,我可以设置它的大小dp.默认值为24dp x 24dp.

  1. 如果我在我的应用程序中使用不同于24dp x 24dp的矢量,那么这些测量在性能方面是否重要?另外关于21岁以下的API(我app:srcCompat用来显示图像).

  2. 当使用较低的API并且系统将其缩小时,矢量大小是否重要?

  3. 这些测量对我的使用是否重要,除了我申请时只是默认大小wrap_content

Den*_*uer 1

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

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

android {  
    defaultConfig {  
        vectorDrawables.useSupportLibrary = true  
    }  
}
Run Code Online (Sandbox Code Playgroud)

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

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

生成的 PNG 可以在这里找到:

app\build\generated\res\pngs\...
Run Code Online (Sandbox Code Playgroud)

反之,如果您的矢量为 128dp 并且您将其用作 24dp 图形,则由于缩放,缩小后的 PNG 图形可能看起来也不像预期的那么完美,并且由于 PNG 太大,您可能会浪费一些文件大小。

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