Android 程式开发:(十)绘制用户界面 —— 10.1通过纯编码实现UI

到目前为止,在所有的章节中,我们所看见的UI都是通过XML来实现的。之前也提及过,除了使用XML,也可以使用代码来实现UI界面。这个方式是很有用的,比如你的UI需要在运行时被生成。举个例子,假设你在编写一个“电影票的预定系统”,你的程序使用按钮Buttons去显示每个电影院的座位。在这种情况下,你就会需要依据实际情况去动态地生成UI。

下面的例子将会展示如何通过编码,动态地在Activity中生成UI。

1、创建一个工程:UICode。

2、UICodeActivity.java中的代码。

public class UICodeActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); // 视图的参数 LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); // 创建布局 LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); // 创建一个TextView TextView tv = new TextView(this); tv.setText("This is a TextView"); tv.setLayoutParams(params); // 创建一个Button Button btn = new Button(this); btn.setText("This is a Button"); btn.setLayoutParams(params); // 向布局中添加TextView layout.addView(tv); // 向布局中添加Button layout.addView(btn); // 创建布局使用的属性 LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT ); this.addContentView(layout, layoutParam); } }
3、按F11调试,效果图如下。


在这个例子中,首先要把setContentView()方法注释掉,目的是不让Activity去加载main.xml中的UI视图。

然后,创建一个LayoutParams对象,这个对象指定了布局的属性。

LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 也要创建一个LinearLayout对象,这个对象包含了activity中的所有视图。

LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); 然后,创建一个TextView和一个Button。

TextView tv = new TextView(this); tv.setText("This is a TextView"); tv.setLayoutParams(params); Button btn = new Button(this); btn.setText("This is a Button"); btn.setLayoutParams(params); 然后,把它们加到LinearLayout对象中去。

layout.addView(tv); layout.addView(btn); 同时,也要创建一个LayoutParams对象,供LinearLayout对象使用。

LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT ); 最后,把这个LinearLayout对象添加到Activity中去。

this.addContentView(layout, layoutParam);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值