界面編程與視圖(View)組件

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]);
			}
		});
	}
}
相關文章
相關標籤/搜索