随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
一般情况下,我们可以使用布局XML中的布局方式,但我们也可以在代码中创建布局方式和创建组件,实例如下:
package com.lovo;
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
public class AddViewActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置布局的第一种方式,直接引用布局XML
// setContentView(R.layout.main);
// 设置布局的第二种方式:在代码中创建一个布局,加到Activity中
// 创建一个线性布局
LinearLayout linearLayout = new LinearLayout(this);
// 设置线性布局的宽,高:根据内容自动调整
linearLayout.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
// 添加TextView组件
TextView tv = new TextView(this);
// 设置组件TextView的内容
tv.setText("动态添加内容");
// 设置组件的高,宽
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
// 将组件添加到布局中
linearLayout.addView(tv);
// 设置此Activity的布局方式
this.setContentView(linearLayout);
// //设置布局的第三种方式:直接从XML中读取,并在代码中创建组件
// //直接从XML中读取布局方式:LinearLayout
// LinearLayout linearLayout = (LinearLayout)
// getLayoutInflater().inflate(
// R.layout.main, null);
// //添加按钮
// Button btn = new Button(this);
// //设置按钮的宽,高:根据内容自动调整
// btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
// LayoutParams.WRAP_CONTENT));
// //设置按钮上显示的文字
// btn.setText("在代码中添加的按钮");
// //把按钮添加到布局中
// linearLayout.addView(btn);
// //设置此Activity的布局方式
// setContentView(linearLayout);
}
}
布局XML:引用此布局XML进行布局时才使用,在代码手动创建布局时不需要此XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加组件的方式" />
</LinearLayout>