开发步骤:
1.创建一个通过手势滑动查看相片的手机相册
2.创建动画资源文件
3.定义并初始化动画数组
4.指定切换的动画效果
第一步:创建像片切换器
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<!--图像切换器-->
<ViewFlipper
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/flipper">
</ViewFlipper>
</RelativeLayout>
第二步:创建动画资源文件
res->anim->anim_alpha_in.xml 淡入动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0"
android:toAlpha="1"
android:duration="4000"/>
</set>
同样方法编写淡出动画
anim_alpha_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1"
android:toAlpha="0"
android:duration="4000"/>
</set>
第三步:MainActivity.java
package com.example.pictures;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener {
ViewFlipper flipper;//定义ViewFlipper
GestureDetector detector;//定义手势检测器
final int distance=50;//定义手势动作两点之间最小距离
//定义数组图片
private int []images=new int[]{R.drawable.picture1,R.drawable.picture2,R.drawable.picture3,R.drawable.picture4,R.drawable.picture5,R.drawable.picture6};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
detector=new GestureDetector(this,this);//创建手势检测器
flipper=findViewById(R.id.flipper);//获取ViewFlipper
for(int i=0;i<images.length;i++)
{
ImageView imageView=new ImageView(this);
imageView.setImageResource(images[i]);
flipper.addView(imageView);//加载图片
}
//定义并初始化数组
Animation[] animations=new Animation[2];//定义动画数组
animations[0]= AnimationUtils.loadAnimation(this ,R.anim.anim_alpha_in);//淡入动画
animations[1]=AnimationUtils.loadAnimation(this,R.anim.anim_alpha_out);//淡出动画
//指定切换动画效果
flipper.setInAnimation(animations[0]);
flipper.setOutAnimation(animations[1]);
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
}
不知道我的代码哪里出了问题,运行结果只显示第一张图片,其他图片不显示