開發步驟:
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;
}
}
不知道我的代碼哪裏出了問題,運行結果只顯示第一張圖片,其他圖片不顯示