Android代码心得4-图片切换

图片切换关键字为ImageSwitcher,定义好一个对象后切换到java文件
定义几个新对象,一个数组类型存放图片资源文件,一个ImageSwitcher读取布局管理器,一个int类型存放数组索引,两个float类型存放按下和抬起手指时的x坐标

    private int[] arrryimage=new int[]{R.drawable.h1,R.drawable.h2,R.drawable.h3};
    private ImageSwitcher imageSwitcher;
    private  int sel;
    private Float upx,downx;

在OnCreat方法中,读取xml文件的ImageSwitcher,为其建立一个视图工厂,用匿名内部类进行定义

imageSwitcher=(ImageSwitcher)findViewById(R.id.qiehuan);
ImageSwitcher.setFactory=new ViewSwitcher.ViewFactory

自动重写方法,图片工厂顾名思义就是存放了许多图片,先新建一个ImageView对象,然后对其利用数组索引的方法定义其TmageResour属性,最后返回该ImageView

 @Override
 public View makeView() {
ImageView imageView=new Imageiew(MainActivity.this);
imageView.setImageResource=arrryImage(sel)
ruturn imageView
    }
        });

然后为ImageSwitcher建立一个触摸事件监听器

ImageSwitcher.setOnTouchListener(new View.OnTouchListener)
@Override
public boolean onTouch(View v, MotionEvent event) {
 if(event,getAction)==MotionEvent.ACTION_DOWN){
downx=event.getX.;
 return true;}
 else if(event.getAction)==MotionEvent.ACTION_UP){
 upx=event.getx;           

左划

 if(downx-upx>100){	//按下位置在松手位置的右边,即向左划
 sel=sel==arrryimage.length-1?0:sel+1
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(Mainactivity.this;android.R.anim.fade_in)
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this;adroid.R.anim.fade_out)
imageSwitcher.setImageResource(arrryimage[sel]);
}

右划

else if(upx-downx>100){
sel=sel==0?arrryimage.length-1:sel-1;
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(Mainactivity.this;android.R.anim.fade_in);
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(Mainactivity.this;android.R.anim.fade_out);
imageSwitcher.setImageResource(arrryimage(sel);}
  return true;}   
    }
                return false;		//Ontouch方法返回布尔类型false
                            }
        });
    }
}

效果
在这里插入图片描述
左右划切换
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值