1. 程式人生 > >ViewFlipper實現螢幕切換動畫效果

ViewFlipper實現螢幕切換動畫效果

一、使用ViewFlipper實現圖片輪播

ViewFlipper:
1.功能:Android系統自帶的一個多頁面管理控制元件,它可以實現子介面的自動切換
2.為ViewFlipper匯入View:
(1)靜態匯入:例如:在<ViewFlipper></ViewFlipper>元件中增加<ImageView>,這種方式比較死板不推薦使用
(2)動態匯入:獲取ViewFlipper元件後使用addView()方法實現,
例如:flipper.addView(getImageView(R.drawable.pic1))
3.ViewFlipper常用方法:如圖
4.例項:使用ViewFlipper實現圖片輪播


第一步:在資原始檔夾下建立資料夾,且建立圖片淡入淡出時的效果xml檔案。
第二步:在主佈局檔案中加入ViewFlipper元件,並在主活動檔案中獲取元件。
第三步:建立int型別陣列檔案,新增所要展示圖片的Id,並在onCreate方法中動態為ViewFlipper加入子View,使用for迴圈呼叫以圖片id為引數的建立並返回image的方法。
第四步:所呼叫的方法中需使用image.setBackgroundResource(resId);的方式設定圖片顯示形式,保證全屏顯示。
第五步:設定ViewFlipper常用方法,例如:flipper.setInAnimation(this,R.anim.left_out);並呼叫flipper.startFlipper();讓動畫執行起來。

二、支援手勢滑動的ViewFlipper

監視手勢滑動事件的處理
// A.2宣告記錄變數,因為是橫向滑動故只考慮X座標。
private float startX;

public boolean onTouchEvent(MotionEvent event)
{
switch (event.getAction()){
// 手指點到螢幕上,手指落下
case MotionEvent.ACTION_DOWN:{
// A.1記錄剛開始手指落下的起始座標
// A.3獲得橫向座標的值
startX = event.getX();
break;
}
// 手指滑動
case MotionEvent.ACTION_MOVE:{
// B.1判斷向左還是向右滑

// B.2向右滑動是看前一頁,100是指畫素,相當於改寫它的動畫效果
if (event.getX() - startX > 100){
flipper.setInAnimation(this, R.anim.left_in);
flipper.setOutAnimation(this, R.anim.left_out);
flipper.showPrevious();// 顯示前一頁
}
// B.3向左滑動看後一頁
if (startX - event.getX() > 100){
flipper.setInAnimation(this, R.anim.right_in);
flipper.setOutAnimation(this, R.anim.right_out);
flipper.showNext();// 顯示後一頁
}
break;
}
// 手指離開
case MotionEvent.ACTION_UP:{
break;
}

}
return super.onTouchEvent(event);
}