如图是程序的运行界面
点击下一张,可以查看下一张图片
具体实现代码
package com.example.imageswitcher;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
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 MainActivity 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
};
private ImageSwitcher m_Switcher;
private static int index=0;
private static final int BUTTON_DOWN_ID=0X123456;
private static final int BUTTON_UP_ID=0X123457;
private static final int SWITCHER_ID=0X123458;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
LinearLayout main_view=new LinearLayout(this);
m_Switcher=new ImageSwitcher(this);
main_view.addView(m_Switcher);
m_Switcher.setId(SWITCHER_ID);
m_Switcher.setId(SWITCHER_ID);
m_Switcher.setFactory(this);
m_Switcher.setImageResource(imagelist[index]);
setContentView(main_view);
Button next=new Button(this);
next.setId(BUTTON_DOWN_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);
}
@Override
public void onClick(View v)
{
switch(v.getId())
{
case BUTTON_DOWN_ID:
index++;
if(index>=imagelist.length)
{
index=0;
}
m_Switcher.setImageResource(imagelist[index]);
break;
case BUTTON_UP_ID:
index--;
if(index<0)
{
index=imagelist.length-1;
}
m_Switcher.setImageResource(imagelist[index]);
break;
default:
break;
}
}
public View makeView()
{
return new ImageView(this);
}
}
需要注意的地方
需要实现ViewFactory类并且重写makeView方法