【问题标题】:What is the benefit of setting android:constantSize to 'true' in a StateListDrawable?在 StateListDrawable 中将 android:constantSize 设置为“true”有什么好处?
【发布时间】:2012-01-16 23:22:40
【问题描述】:

如果您曾经必须为 Android 制作自己的自定义按钮,那么您将使用 StateList Drawable;或者你应该有。现在,如果您查看Android documentation for StatList Drawables,您将看到有一个名为“android:constantSize”的选项,据说其行为如下:

布尔值。 "true" 如果绘图报告的内部大小在状态变化时保持不变(大小是所有状态的最大值);如果大小根据当前状态而变化,则为“false”。默认为假。

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

基本上,将此属性设置为 true 会给我带来什么好处?

【问题讨论】:

    标签: android performance android-layout


    【解决方案1】:

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

    【讨论】:

    • 谢谢,现在我知道在我的按钮上运行是安全的。但是缓存图像尺寸能给您带来多少性能优势呢?意义重大吗?还是我们最好始终忽略此选项并避免潜在的错误?
    • @RobertMassaioli - 我不知道会有多少好处。由于默认值为false,我猜它不会对性能造成太大影响。除了缓存之外,该标志可能会影响可显示状态更改时是否存在不必要的布局传递;这不仅仅是一个微不足道的因素,但仍然不是压倒性的。但是,我还没有仔细研究这些来源,无法知道这是否真的是这样。
    猜你喜欢
    • 2015-02-08
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2011-05-26
    • 1970-01-01
    • 2020-07-16
    相关资源
    最近更新 更多