Androidで複雑なビューを作成する方法のどちらが速いですか
1)レイアウトに標準ビューを追加してxmlでレイアウトを定義します。
2)カスタムビューのonDrawで必要なものを描画します
1)レイアウトに標準ビューを追加してxmlでレイアウトを定義します。
2)カスタムビューのonDrawで必要なものを描画します
パフォーマンスについて話している場合、それはonDraw()の効率によって異なります。
XMLでビューを定義するときは、レイアウトインフレーターに、ビュータイプクラスのインスタンスを作成し、その初期プロパティを定義したXML属性に設定するように指示するだけです。次に、ビューが描画されたら、何を推測しますか?ビューを描画するためにonDraw()が呼び出されます。
したがって、ビューを拡張してonDraw()をオーバーライドし、スーパークラスが使用するのとまったく同じメソッドを使用してビューを描画した場合、パフォーマンスに違いはありません。
したがって、答えは(実際にパフォーマンスについて質問している場合)「状況によって異なります」です。
同様に、onDraw()で非効率になる可能性があるのと同様に、レイアウト設計でも非効率になる可能性があります。ネストされたLinearLayouts、RelativeLayoutsなどの冗長なビューグループは、パフォーマンスに非常に大きな悪影響を与える可能性があります。レイアウト階層ビューアは、知るための優れたツールです。
Ollie Cからの良い答えhttps://stackoverflow.com/a/9827887/603233:
XMLの利点は次のとおりです。
1. Ability to use layout editors (Eclipse) 2. Easier to preview layouts 3. Possible to benefit from auto-localisation of layouts 4. Easily maintain different parallel layouts for difference devices (screens) 5. Can get a sense of the layout by looking at it (easier than code) 6. Easy to break layouts down into pieces (fragments, includes, etc) to remove duplication 7. Keeps a separation between the visual design, and the functionality behind it