Android的触摸监听器实现滑动图片
程序员文章站
2022-08-16 21:54:30
工程目录:Activitypackage com.example.slide;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.animation.AnimationUtils;import android.widget.ImageSwitcher;import android.widget.ImageView;import andr...
工程目录:
Activity
package com.example.slide;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private int[] arrayPicture=new int[]{
R.drawable.p1,R.drawable.p2,R.drawable.p3};
private ImageSwitcher imageSwitcher;
private int index;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageSwitcher=findViewById(R.id.imgSwitcher);
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) {
int x0=0;/*按下坐标*/
int x1=0;/*抬起坐标*/
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
x0=(int)event.getX();
break;
case MotionEvent.ACTION_UP:
x1=(int)event.getX();
//右滑
if(x1-x0>100)
index=index==0?arrayPicture.length-1:index-1;
else if(x1-x0>100)//左滑
index=index==arrayPicture.length-1?0:index+1;
break;
}
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;
}
});
}
}
Layout
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageSwitcher
android:id="@+id/imgSwitcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ImageSwitcher>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
本文地址:https://blog.csdn.net/weixin_43873198/article/details/109390852