Android应用的绝大部分UI组件都放在android.widget包及其子包、android.view包及其子包中,Android应用的全部UI组件都继承了View类,View组件很是相似于Swing编程的JPanel,它表明一个空白的矩形区域。 java
View类还有一个重要的子类ViewGroup,但ViewGroup一般做为其余组件的容器使用。 android
Android的全部UI 组件都是创建在View、ViewGroup基础之上的,Android采用了“组合器”设计模式来设计View和ViewGroup:ViewGroup是View的子类,所以ViewGroup也可被当成View使用。对于一个Android应用的图形用户界面来讲,ViewGroup做为容器来盛装其余组件,而ViewGroup里除了能够包含普通View组件以外,还能够再次包含ViewGroup组件。 ajax
一、使用XML布局文件控制UI界面 编程
setContentView(R.layout.<资源文件名字>); //在Activity中显示该视图 设计模式
findViewById(R.id.<android.id属性值>); //在Java代码中访问指定UI组件 数组
二、在代码中控制UI界面 app
package org.crazyit.codeview; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; /** * @author gufei * @version 1.0 */ public class CodeView extends Activity { //当第一次建立该Activity时回调该方法 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //建立一个线性布局管理器 LinearLayout layout = new LinearLayout(this); //设置该Activity显示layout super.setContentView(layout); layout.setOrientation(LinearLayout.VERTICAL); //建立一个TextView final TextView show = new TextView(this); //建立一个按钮 Button bn = new Button(this); bn.setText(R.string.ok); bn.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT , ViewGroup.LayoutParams.WRAP_CONTENT)); //向Layout容器中添加TextView layout.addView(show); //向Layout容器中添加按钮 layout.addView(bn); //为按钮绑定一个事件监听器 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { show.setText("Hello , Android , " + new java.util.Date()); } }); } }
三、使用XML布局文件和Java代码混合控制UI界面 ide
main.xml代码 布局
<?xml version="1.0" encoding="utf-8" ?> - <!-- 定义一个线性布局容器 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" />MixView.java
package org.crazyit.mixview; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; /** * @author gufei * @version 1.0 */ public class MixView extends Activity { //定义一个访问图片的数组 int[] images = new int[]{ R.drawable.java, R.drawable.ee, R.drawable.classic, R.drawable.ajax, R.drawable.xml, }; int currentImg = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取LinearLayout布局容器 LinearLayout main = (LinearLayout)findViewById(R.id.root); //程序建立ImageView组件 final ImageView image = new ImageView(this); //将ImageView组件添加到LinearLayout布局容器中 main.addView(image); //初始化时显示第一张图片 image.setImageResource(images[0]); image.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (currentImg >= 4) { currentImg = -1; } //改变ImageView里显示的图片 image.setImageResource(images[++currentImg]); } }); } }