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