2012-01-16 5 views
3

Android用の独自のボタンを作成しなければならない場合は、StateList Drawableを使用します。または持っている必要があります。ここでAndroid documentation for StatList Drawablesを見ると、 "android:constantSize"というオプションがあり、次のように動作すると言われるでしょう:StateListDrawableでandroid:constantSizeを 'true'に設定するとどんな利点がありますか?

ブール値。ドロアブルの報告された内部サイズが状態が変化するときに一定のままである(サイズはすべての状態の最大値です)場合は "true"を返します。サイズが現在の状態に基づいて変化する場合は "false"。デフォルトはfalseです。

これですべてが順調です。イメージのサイズがどの州でも変化しない場合は、これをtrueに設定する必要があることを私に伝えていると思います。私の質問は次のようなものです。この価値を真にするにはどんなメリットがありますか?レンダリング時間を短縮しますか?それはバックグラウンドでより効率的ですか?

基本的に、この属性をtrueに設定するとどのようなメリットがありますか?

答えて

3

フラグが設定されている場合、ドロアブルは一定のサイズを1回計算し、そのサイズに関するすべてのクエリにその値を使用します。フラグが設定されていない場合は、その都度、現在のドロアブルに固有の幅を問い合わせます。

+0

ありがとう、今私はそれが私のボタンで実行することは安全だと知っている。しかし、パフォーマンスのメリットのどれだけが、イメージ・ディメンションをキャッシュするだけであなたを得ることができますか?それは重要ですか?あるいは、このオプションを常に無視して潜在的な間違いを避けるほうがよいでしょうか? –

+0

@RobertMassaioli - 私はそこにどれくらいのメリットがあるのか​​分かりません。デフォルトは 'false'なので、パフォーマンスヒットはあまり関与しないと私は推測します。キャッシングに加えて、フラグは、表示可能な状態が変わるたびに不必要なレイアウトパスが存在するかどうかに影響を与える可能性があります。それは些細な要素以上のものですが、それでも圧倒的なものはありません。しかし、私は、これが実際にそうであるかどうかを知るために十分な情報源を調べていない。 –

関連する問題