最近做scroller和慣性滑動,確切記錄一下。
一般處理手勢可以選擇兩種方式:
一般來說,因為後者預先處理包裝了一些事件,所以後者是優於前者的。
import android.content.context
import android.graphics.bitmap
import android.graphics.bitmapfactory
import android.graphics.canvas
import android.util.attributeset
import android.util.log
import android.view.gesturedetector
import android.view.motionevent
import android.view.view
import android.view.animation.decelerateinterpolator
import android.view.animation.interpolator
import android.widget.scroller
import view.naughtychild.myview.r
import kotlin.math.abs
class customview : view, runnable
var scroller: scroller =
scroller
(context, decelerateinterpolator)
val bitmap: bitmap = bitmapfactory.
decoderesource
(resources, r.mipmap.mountain)
val gesturedetector =
gesturedetector
(this
.context,
object
: gesturedetector.
ongesturelistener
override
funonsingletapup
(e: motionevent?
): boolean
override
funondown
(e: motionevent?
): boolean
override
funonfling
( e1: motionevent,
e2: motionevent,
velocityx: float,
velocityy: float
): boolean
else,if
(abs
(velocityy)
>
600)
else
)return
true
}override
funonscroll
( e1: motionevent?
, e2: motionevent?
, distancex: float,
distancey: float
): boolean
override
funonlongpress
(e: motionevent?)}
)private
funflin**iew
(e2: motionevent, velocityx: float, velocityy: float)
override
funrun()
}override
fundraw
(canvas: canvas)
override
funontouchevent
(event: motionevent?
): boolean
}
Scoller實現view的滑動
scoller實際上只是記錄了view要滑動到的位置 之後還是呼叫view的scollto或scollby方法進行實際上的view滾動mscroller new scroller context public void startmoveanim int starty,int dy,int dura...
使用Scoller實現彈性滑動
scroller scroller new scroller mcontext 緩慢滾動到指定位置 private voidsmoothscrollto int destx,int desty int scrollx getscrollx int deltax destx scrollx 1000m...
Cocos2d js中實現慣性滑動效果
什麼是慣性滑動效果呢?我們經常在手機上看到一種效果,拖著手機螢幕滑動,把手放開後,螢幕仍會因為慣性而滑動一段距離,這就是一種慣性滑動效果。現在的工作是做遊戲研發,因此也少不了要實現這種效果,初步想了一下,有幾種方案,當然,效果不太相同。方案如下 方案1 手放開後,讓螢幕固定滑動一段距離。這種方案最為...