这个控件就是用来切换图片的,还可以加动画效果但是现在还没有学到。
思路是这样的:ImageSwitcher有个方法是setImageResource();
但是这个方法有个条件你必须得实现视图工厂setFactory,让他知道你换后是什么类型的;
然后就是把所有资源存在一个数组里,我们可以通过点击按钮改变数组的下标来改变图片;
代码如下:
private ImageSwitcher imgsw;
private Button btn_add; private Button btn_shang; private int index; //下标 private int[] data = { R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img4 }; //存放图片地址的数组@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgsw = (ImageSwitcher) findViewById(R.id.imgsw); btn_add = (Button) findViewById(R.id.btn_add); btn_shang = (Button) findViewById(R.id.btn_shang); //设置切换view对象 imgsw.setFactory(this); btn_add.setOnClickListener(this); btn_shang.setOnClickListener(this); imgsw.setImageResource(data[0]); }@Override
public void onClick(View v) { switch (v.getId()) { case R.id.btn_add: index++; if(index>=data.length){ //这里有个判断语句,当他等于数组长度的时候就证明没有图片了,让下标等于0 index=0; imgsw.setImageResource(data[index]); } imgsw.setImageResource(data[index]); break;case R.id.btn_shang:
index--; if(index<=0){ //同上面一样,就是判断的条件变了 index=data.length-1; imgsw.setImageResource(data[index]); } imgsw.setImageResource(data[index]);break;
}}
@Override
public View makeView() { //这里就是视图工厂了,返回的是imageview, return new ImageView(this); }