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]); } }); } }