【问题标题】:How is creating a layout in xml file different than creating it through java code ? What are the pros & cons? [duplicate]在 xml 文件中创建布局与通过 java 代码创建布局有何不同?有什么优点和缺点? [复制]
【发布时间】:2015-07-25 19:35:53
【问题描述】:

xml中创建的大部分布局文件都可以通过代码创建。 例如,下面的 xml 和 java 中的 sn-ps 服务于相同的目的:

<LinearLayout
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:orientation="horizontal">
               <ImageView
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:background="@drawable/allstar1"
                   android:layout_weight="1"/> 
                   ..
                   ..
</LinearLayout>

Java:

        LinearLayout l_row = new LinearLayout(this);
        l_row.setOrientation(LinearLayout.HORIZONTAL);
        LinearLayout.LayoutParams lParam1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,1f);
        lParam1.weight = 1.0f;
        lParam1.gravity = Gravity.CENTER;
        l_row.setLayoutParams(lParam1);
        LinearLayout.LayoutParams r_Param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
            r_Param.weight = 1.0f;
            r_Param.gravity = Gravity.CENTER;

        for(int j=0;j<cols;j++)
        {
            ImageView iv = new ImageView(this); 
            l_row.addView(iv); 
            iv.setLayoutParams(r_Param); 
        }

我通常更喜欢(顺其自然)在代码中创建我的布局和其他控件。我一直在考虑可能的缺点。我在互联网上没有找到任何东西。

我想知道这两种方法的区别:

  • 对内存消耗的影响
  • 对速度的影响
  • 代码重用性/大小
  • 维护
  • 我应该知道的其他任何事情

有什么显着的优势/劣势吗?或者使用特定的方法仅仅是个人选择的问题?

感谢和问候,

SwaS

【问题讨论】:

    标签: android performance android-layout


    【解决方案1】:

    XML: 主要是静态页面。 您希望显示一定数量的对象。

    JAVA: 动态渲染。例如,您可能调用 Web 服务为您提供一张表的项目列表,但您不知道会返回多少项目。因此,您可以通过编程方式呈现您的页面,以用 x 项与一组项目来填充表格。

    您还可以计算您使用的设备的屏幕尺寸,这样您就可以动态设置 LayoutParams 的宽度和高度。

    他们都有自己的优势,保持简单。内存方面和处理时间 xml 应该占上风,因为内存已经分配并且需要处理的东西更少。使用 Java 或以编程方式,您的应用程序将完成更多工作,因为您必须指定更多代码。

    Xml 和 java 都可以重用,具体取决于您构建项目的方式。这真的归结为代码设计,而不是 xml 与 java。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      相关资源
      最近更新 更多