Android四种书写布局的方式

1.纯XML书写
2.纯JAVA书写
3.XML与JAVA混合书写
4.利用编译器的Graphical Layout图形布局(图形化操作)

1.纯XML书写
采用XML书写可以将布局界面的代码与业务逻辑代码分隔开,使程序结构更加简洁、明了。使用也非常的简单。
其主要分为两个关键的步骤
(1)、在res/layout中编写XML布局文件,最好采用JAVA的命名规则,写完后,R.java会自动收录该布局的资源。
(2)、在JAVA代码中的onCreate中使用该布局资源
setContentView(R.layout.XXX);

activity_main:


    
    


MainActivity:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //关键语句:
        setContentView(R.layout.activity_main);
        
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

Android四种书写布局的方式_第1张图片
最简单的Hello world!

2.纯JAVA书写
Android中也支持想Java String 那样的完全用代码来控制界面的显示,所有的UI组件都是new出来的。
此方法主要分五步:
(1)、删除在onCreate()中的setContentView(R.layout.main);
(2)、创建布局管理器(类似于容器):相对布局、帧布局、线性布局、约束布局、绝对布局等
(3)、创建具体的组件:TextView、ImageView、Button等
(4)、将组件加入布局管理器中
(5)、显示布局管理器:setContentView(XXX);
这里以相对布局为例:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //创建布局管理器
        RelativeLayout relativeLayout = new RelativeLayout(MainActivity.this);
        //添加控件
        TextView txt = new TextView(MainActivity.this);
        //个性化控件
        txt.setText("Java显示布局");
        //设置大小
        LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        //保存大小
        txt.setLayoutParams(params);
        //添加控件到布局管理器中
        relativeLayout.addView(txt);
        //显示布局
        setContentView(relativeLayout);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

Android四种书写布局的方式_第2张图片

3.混合开发
XML开发虽然简便但面对复杂页面时不够灵活,JAVA开发虽然灵活但是开发过程较为繁琐不利于高层次的解耦。所以推荐用混合式的开发方式,实际开发中分情况使用为好。
这里用自动增加TextView来演示混合开发。
主要分四步:
(1)、在activity_main.xml中,给布局管理器设置id属性
(2)、在MainActivity.java中,声明并实例化布局管理器(findViewById的形式)
(3)、在for循环等可重复执行的代码中以java代码的形式创建组件
(4)、在循环的末尾执行添加组件到布局管理器即可

xml代码:





java代码:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout llt =(LinearLayout) findViewById(R.id.linearLayout); 
        for(int i=0;i<10;i++){
        	TextView txt = new TextView(MainActivity.this);
        	txt.setText(String.valueOf(i));
        	llt.addView(txt);
        }
     
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

Android四种书写布局的方式_第3张图片

4.利用图形布局:
图形布局说白了就是xml方式书写代码,只是Graphical Layout可以进行可视化操作。Eclipse与Android Studio的图形化操作大同小异、直接拖动即可,在此不做演示。

你可能感兴趣的:(Android布局)