2012-01-16 73 views
3

如果您曾经为您制作Android自定义按钮,那么您将使用StateList Drawable;或者你应该有。现在,如果你看看Android documentation for StatList Drawables,那么你会看到有一个名为“android:constantSize”的选项,据说它的行为如下:在StateListDrawable中将android:constantSize设置为'true'有什么好处?

布尔值。如果可绘制报告的内部大小在状态改变时保持不变(大小是所有状态的最大值),则为“真”。如果尺寸根据当前状态而变化,则为“false”。默认为false。

现在,这一切都很好。我认为它告诉我,如果图像的大小在任何状态下都没有改变,那么你应该把它设置为true。我的问题是:将此值设置为真有什么好处?它会加快渲染时间吗?在后台效率更高吗?

从本质上讲,将这个属性设置为true会带来什么好处?

回答

3

设置标志时,drawable会计算一次常量大小,并将其用于所有关于大小的查询。当标志未设置时,它每次查询当前可绘制的内在宽度。

+0

谢谢,现在我知道在我的按钮上运行是安全的。但是,只有缓存映像维度可以为您带来多大的性能优势?这很重要吗?或者我们只是更好地忽略这个选项,并避免潜在的错误? – 2012-01-17 01:52:37

+0

@RobertMassaioli - 我不知道会有多少好处。由于默认值为'false',我的猜测是它不涉及太多的性能影响。除了缓存之外,只要可显示状态发生变化,该标志可能会影响是否存在不必要的布局传递;这不仅仅是一个微不足道的因素,但仍然没有任何压倒性的东西。但是,我没有仔细查看资料来源,知道这是否确实如此。 – 2012-01-17 04:08:36

相关问题