該日曆是用gridview來寫的,其實跟普通的日曆相比就增加了乙個通過手勢來拖動頁面的效果,那這個手勢gesture在android裡是如何實現的呢?接下來我就為大家展示一下改程式的主要核心**以及解析.
首先看一下效果圖:
首先要建立乙個gesturelistener類來繼承******ongesturelistener,說到******ongesturelistener呢,它其實就是android sdk提供了乙個listener類來偵測各種不同的手勢,你只需要實現自己所關心的手勢就可以了.
class gesturelistener乙個划動的手勢有幾個特徵, 比如是在x或者y軸上近乎直線的划動, 中途路徑的偏差不能太大, 而且划動需要一定的速度, 所以我們定義幾個定量:extends
******ongesturelistener
private然後在onfling方法中, 判斷是不是乙個合理的swipe動作:static
final
int swipe_min_distance = 120;
private
static
final
int swipe_max_off_path = 250;
private
static
final
int swipe_threshold_velocity = 200;
@override //這裡的viewflipper是含有多個view的乙個container, 可以很方便的呼叫prev/next view, 加上animation動畫, 可以達到一些不錯的效果:在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)
//自定義的animation可以檢視具體的xml, 比如從左邊進來的乙個動畫:新增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);
xml**:
當然最後不要忘記在你的activity中ontouch方法來獲取手勢action@override這個比較簡單,gridview跟自定義的adapter我就不在這裡奉上啦//獲取手勢action;
public
boolean
ontouch(view v, motionevent event)
帶手勢滑動的日曆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...