图像切换器

it2023-06-07  70

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ImageSwitcher android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageSwitcher" /> </RelativeLayout> package com.example.imageswitcher; import android.app.Activity; import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.ViewSwitcher; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends Activity { private int[] arrayPicture=new int[]{R.drawable.sea,R.drawable.star,R.drawable.timg,R.drawable.ck}; private ImageSwitcher imageSwitcher; private int index; private float touchDownX; private float touchUpX; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //设置全屏显示 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); //获取图片切换器 imageSwitcher=findViewById(R.id.imageSwitcher); //视图工厂 imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() { ImageView imageView=new ImageView(MainActivity.this); imageView.setImageResource(arrayPicture[index]); return imageView; } }); imageSwitcher.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(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(touchDownX-touchUpX>100) { 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)