android 图片视图组,Android基础——高级UI组件:图像视图和图片切换器

该篇博客详细介绍了如何在Android中实现图片通过手势左右滑动进行切换的效果。使用了ImageSwitcher组件,结合MotionEvent事件监听,实现图片的淡入淡出过渡动画。通过判断滑动距离来确定是向左还是向右滑动,并更新图片索引,实现了类似相册浏览的功能。
摘要由CSDN通过智能技术生成

packagecom.example.myhighuiii;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.MotionEvent;importandroid.view.View;importandroid.view.animation.AnimationUtils;importandroid.widget.ImageSwitcher;importandroid.widget.ImageView;importandroid.widget.ViewSwitcher;public class MainActivity extendsAppCompatActivity {private int[] arrayPicture = new int[]{

R.mipmap.a, R.mipmap.b, R.mipmap.c

};private ImageSwitcher imageSwitcher = null;private int index = 0;private float touchDownX;//手指按下的X坐标

private float touchUpX;//手指抬起的X坐标

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

imageSwitcher=(ImageSwitcher)findViewById(R.id.imageSwitcher);

imageSwitcher.setFactory(newViewSwitcher.ViewFactory() {

@OverridepublicView makeView() {

ImageView imageView= new ImageView(MainActivity.this);

imageView.setImageResource(arrayPicture[index]);//当前要显示的图片

returnimageView;

}

});//设置事件监听器

imageSwitcher.setOnTouchListener(newView.OnTouchListener(){

@Overridepublic booleanonTouch(View v, MotionEvent event) {//如果触发了按下事件

if(event.getAction()==MotionEvent.ACTION_DOWN){

touchDownX=event.getX();return true;

}else if(event.getAction()==MotionEvent.ACTION_UP){//触发了抬起事件

touchUpX=event.getX();if(touchUpX-touchDownX>100){//认为是从左向右滑动的,往前走一步

index= index==0 ? arrayPicture.length-1 : index-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(arrayPicture[index]);

}else if(touchUpX-touchDownX

index = index==arrayPicture.length-1 ? 0 : index+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(arrayPicture[index]);

}return true;

}return false;

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值