利用ViewFlipper來實現頁面左右滑動切換的效果很簡單,
只要使用ViewFlipper將View裝在一起,再用GestureDetector做手勢辨別就可以了。
新增四個anim檔案,分別為左進、左出、右進、右出
左進 (push_left_in.xml):手勢往左滑的進場動作
左出(push_left_out.xml):手勢往左滑的出場動作
右進(push_right_in.xml):手勢往右滑的進場動作
右出(push_right_out.xml):手勢往右滑的出場動作
translate標籤(位置移動)屬性介紹:
fromXDelta:X軸方向的起始位置
toXDelta:X軸方向的結束位置
fromYDelta:Y軸方向的起始位置
toYDelta:Y軸方向的結束位置
以上屬性的值可以填入
(1) 數值 → 如果數值為50,代表在目前View的左上角加上50px後做為起點
(2) % → 如果為50%,代表在目前View的左上角加上自己寬度的50%後做為起點
(3) %p → 如果為50%p,代表在目前View的左上角加上父元件寬度的50%後做為起點
手勢的判斷要繼承OnGestureListener方法。
(出現錯誤按下Alt+Enter,並匯入Method)
接著在onCreate中宣告GestureDetector方法,並在onFling的方法中加上判斷手勢方向的方法
最後宣告onTouchEvent,如果沒宣告的話,會無法滑動
完整MainActivity.java程式碼:
參考資料:启舰的博客
只要使用ViewFlipper將View裝在一起,再用GestureDetector做手勢辨別就可以了。
Step1 在layout加上ViewFlipper元件
Step2 在anim資料夾中新增左右滑動動畫的XML
新增anim資料夾,並且將Resource Type 選擇 anim新增四個anim檔案,分別為左進、左出、右進、右出
左進 (push_left_in.xml):手勢往左滑的進場動作
左出(push_left_out.xml):手勢往左滑的出場動作
右進(push_right_in.xml):手勢往右滑的進場動作
右出(push_right_out.xml):手勢往右滑的出場動作
translate標籤(位置移動)屬性介紹:
fromXDelta:X軸方向的起始位置
toXDelta:X軸方向的結束位置
fromYDelta:Y軸方向的起始位置
toYDelta:Y軸方向的結束位置
以上屬性的值可以填入
(1) 數值 → 如果數值為50,代表在目前View的左上角加上50px後做為起點
(2) % → 如果為50%,代表在目前View的左上角加上自己寬度的50%後做為起點
(3) %p → 如果為50%p,代表在目前View的左上角加上父元件寬度的50%後做為起點
Step3 設定MainActivity.java檔
宣告ViewFlipper並新增addImgView、addMyView的方法,再將要可切換的view新增到ViewFlipper中手勢的判斷要繼承OnGestureListener方法。
(出現錯誤按下Alt+Enter,並匯入Method)
接著在onCreate中宣告GestureDetector方法,並在onFling的方法中加上判斷手勢方向的方法
最後宣告onTouchEvent,如果沒宣告的話,會無法滑動
完整MainActivity.java程式碼:
參考資料:启舰的博客
留言
張貼留言