2017-08-27 22 views
13

当我创建一个矢量绘制时,我可以在dp中设置其大小。默认值是24dp x 24dp。Android矢量资产:dp度量仅对“包装内容”起作用吗?

  1. 做这些事的测量在性能方面,如果我在我的应用程序使用矢量在不同的尺寸比24dp X 24dp?还有关于21下的API(我使用app:srcCompat来显示图像)。

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

  3. 这些测量对我的使用来说是否重要,除了仅适用于wrap_content时的默认尺寸?

+0

所以,你要只矢量图像尺寸测量或文本也wrap_content,大小不应该的问题回答#1? 如果对于所有那么你可以使用 **编译'com.intuit.sdp:sdp-android:1.0.4'**这个 图书馆为put测量。 –

+0

我认为这可以帮助https:// stackoverflow。com/a/35930518/4252667 –

回答

1

我可能如果你没有在预棒棒糖版本通过支持库使用矢量绘图资源不能回答你所有的问题,但可以肯定的DP大小事务。

为了使支持向量绘图资源,你必须添加以下到您的应用程序的gradle这个build文件:

android { 
    defaultConfig { 
     vectorDrawables.useSupportLibrary = true 
    } 
} 

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

如果这不是你的应用程序的构建文件的Android Studio会生成PNG格式的一部分对于所有具有定义的DP尺寸的Lollipop版本。因此,如果你的矢量定义了24dp,并且你将它用作128dp图形,那么在使用24dp PNG时,它在前棒棒糖版本上很可能不会很好。

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

app\build\generated\res\pngs\... 

的otherway左右,如果你的载体是128dp和你正在使用它作为24dp图形按比例缩小的PNG图形也可能看起来不完美的,因为由于预期缩放和由于PNG太大可能会浪费一些文件大小。

我从来没有真正看这是什么意思的性能...

+0

当然可以。我没有想到后备PNG一代。所以本质上来说,如果您使用的是无PNG后备的矢量绘图,则只有在使用'wrap_content'时,可绘制XML中的尺寸才有意义。谢谢! –

0
  1. 当您使用wrap_content,然后设备将在你想要的大小(24dp)呈现载体。设置更大的尺寸会导致更大的位图渲染,这会影响您的UI和性能。如果您没有使用换行内容,并且您正在使用支持库来获取矢量,则矢量大小应该无关紧要。
  2. 如果你设置了vectorDrawables.useSupportLibrary = false,那么你的apk文件也会包含生成的矢量位图,用于API 21以下的设备。更大的位图需要更多的时间来打开,使用更多的内存,也增加了apk的大小。如果您使用的尺寸大于UI所需的尺寸(系统会缩小尺寸),则会影响性能并可能降低图像质量。
  3. ,当你不使用,如果你正在使用vectorDrawables.useSupportLibrary = true