在Android XML或Canvas绘图中,哪种创建视图的方式更快

时间:2012-12-01 18:18:40

标签: android android-custom-view

  

可能重复:
  Best practices: Layouts on Android (Programmatic vs XML)

在android中创建复杂视图的方法更快

1)通过在布局中添加标准视图来定义xml中的布局。

2)在自定义视图的onDraw中绘制必需的

2 个答案:

答案 0 :(得分:3)

如果你在谈论性能,那取决于你对onDraw()的效率。

在XML中定义视图时,您所做的就是告诉布局inflater创建视图类型类的实例,并将其初始属性设置为您定义的XML属性。然后,当绘制视图时,猜猜是什么 - 它的onDraw()被调用来绘制视图。

因此,如果您扩展了View并覆盖onDraw()并使用完全相同的方法来绘制超类将使用的视图,那么就没有性能差异。

所以,答案(如果你确实是在询问表现)是"它取决于"。

同样地,就像你在onDraw()中效率低下一样,你的布局设计可能效率低下。冗余视图组(如嵌套的LinearLayouts,RelativeLayouts等)可能会对性能产生非常大的负面影响。布局层次结构查看器是一个了解的好工具。

答案 1 :(得分:2)

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