Android 高級控件學習--ImageSwitcher

Android 高級控件學習--ImageSwitcher


package com.lxt008;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ViewSwitcher.ViewFactory;

public class Activity01 extends Activity implements OnClickListener,ViewFactory
{
	/* 所有要顯示的圖片資源索引 */
	private static final Integer[] imagelist = 
	{ 
		R.drawable.img1, 
		R.drawable.img2, 
		R.drawable.img3,
		R.drawable.img4, 
		R.drawable.img5, 
		R.drawable.img6, 
		R.drawable.img7, 
		R.drawable.img8, 
    }; 
	
	//創建ImageSwitcher對象
	private ImageSwitcher			m_Switcher;
	//索引
	private static int				index			= 0;

	//“下一頁”按鈕ID
	private static final int		BUTTON_DWON_ID	= 0x123456;
	//“上一頁”按鈕ID
	private static final int		BUTTON_UP_ID	= 0x123457;
	//ImageSwitcher對象的ID
	private static final int		SWITCHER_ID		= 0x123458;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);

		//創建一個線性佈局LinearLayout
		LinearLayout main_view = new LinearLayout(this);
		//創建ImageSwitcher對象
		m_Switcher = new ImageSwitcher(this);
		//在線性佈局中添加ImageSwitcher視圖
		main_view.addView(m_Switcher);
		//設置ImageSwitcher對象的ID
		m_Switcher.setId(SWITCHER_ID);
		//設置ImageSwitcher對象的數據源
		m_Switcher.setFactory(this);
		m_Switcher.setImageResource(imagelist[index]);
		
		//設置顯示上面創建的線性佈局
		setContentView(main_view);

		//創建“下一張”按鈕
		Button next = new Button(this);
		next.setId(BUTTON_DWON_ID);
		next.setText("下一張");
		next.setOnClickListener(this);
		LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(100, 100);
		main_view.addView(next, param);

		//創建“上一張”按鈕
		Button pre = new Button(this);
		pre.setId(BUTTON_UP_ID);
		pre.setText("上一張");
		pre.setOnClickListener(this);
		main_view.addView(pre, param);

	}

	//事件監聽、處理
	public void onClick(View v)
	{
		switch (v.getId())
		{
			//下一頁
			case BUTTON_DWON_ID:
				index++;
				if (index >= imagelist.length)
				{
					index = 0;
				}
				//ImageSwitcher對象資源索引
				m_Switcher.setImageResource(imagelist[index]);
				break;
			//上一頁
			case BUTTON_UP_ID:
				index--;
				if (index < 0)
				{
					index = imagelist.length - 1;
				}
				//ImageSwitcher對象資源索引
				m_Switcher.setImageResource(imagelist[index]);
				break;
			default:
				break;
		}
	}


	public View makeView()
	{
		//將所有圖片通過ImageView來顯示
		return new ImageView(this);
	}
}

一、創建出LinearLayout來動態佈局,一共三個控件ImageSwitcher、兩個Button,設置好屬性及監聽器後就addView進LinearLayout。

二、ImageWitcher切換顯示是實現接口ViewFactory

m_Switcher.setFactory(this);
m_Switcher.setImageResource(imagelist[index]);

public View makeView()
    {
        //將所有圖片通過ImageView來顯示
        return new ImageView(this);
    }

發佈了30 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章