帶手勢滑動的日曆Demo

2021-06-16 15:07:55 字數 1905 閱讀 5557

該日曆是用gridview來寫的,其實跟普通的日曆相比就增加了乙個通過手勢來拖動頁面的效果,那這個手勢gesture在android裡是如何實現的呢?接下來我就為大家展示一下改程式的主要核心**以及解析.

首先看一下效果圖:

首先要建立乙個gesturelistener類來繼承******ongesturelistener,說到******ongesturelistener呢,它其實就是android sdk提供了乙個listener類來偵測各種不同的手勢,你只需要實現自己所關心的手勢就可以了.

class gesturelistener 

extends

******ongesturelistener

乙個划動的手勢有幾個特徵, 比如是在x或者y軸上近乎直線的划動, 中途路徑的偏差不能太大, 而且划動需要一定的速度, 所以我們定義幾個定量:

private

static

final

int swipe_min_distance = 120;

private

static

final

int swipe_max_off_path = 250;

private

static

final

int swipe_threshold_velocity = 200;

然後在onfling方法中, 判斷是不是乙個合理的swipe動作:

@override //

在onfling方法中, 判斷是不是乙個合理的swipe動作;

public

boolean onfling(motionevent e1, motionevent e2, float velocityx,float

velocityy)

else

if (e2.getx() - e1.getx() > swipe_min_distance && math.abs(velocityx) >swipe_threshold_velocity)

這裡的viewflipper是含有多個view的乙個container, 可以很方便的呼叫prev/next view, 加上animation動畫, 可以達到一些不錯的效果:

//

新增animation實現不同動畫效果

slideleftin = animationutils.loadanimation(this

, r.anim.slide_left_in);

slideleftout = animationutils.loadanimation(this

, r.anim.slide_left_out);

sliderightin = animationutils.loadanimation(this

, r.anim.slide_right_in);

sliderightout = animationutils.loadanimation(this

,r.anim.slide_right_out);

自定義的animation可以檢視具體的xml, 比如從左邊進來的乙個動畫:

xml**:

當然最後不要忘記在你的activity中ontouch方法來獲取手勢action 

@override

//獲取手勢action;

public

boolean

ontouch(view v, motionevent event)

這個比較簡單,gridview跟自定義的adapter我就不在這裡奉上啦

帶手勢滑動的日曆Demo

該日曆是用gridview來寫的,其實跟普通的日曆相比就增加了乙個通過手勢來拖動頁面的效果,那這個手勢gesture在android裡是如何實現的呢?接下來我就為大家展示一下改程式的主要核心 以及解析.首先看一下效果圖 首先要建立乙個gesturelistener類來繼承 ongesturelist...

android 滑動手勢的監聽

之前開發中有滑動監聽的需求,進行了查詢學習,今天專案中有用到,貼出來分享給有需要的小夥伴,廢話不多說直接貼 float mposx 0 float mposy 0 float mcurposx 0 float mcurposy 0 findviewbyid r.id.ll bottom setont...

移動端的手勢事件 左右滑動

會聽過什麼左滑喜歡,右滑不喜歡,那麼這樣的滑動手勢如何實現,在此用touch事件來實現左右滑動的判斷 lang en charset utf 8 name viewport content width device width,user scalable no,initial scale 1.0,m...