Skip to content

Instantly share code, notes, and snippets.

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:zAdjustment="normal" >
<translate
android:duration="100" //100毫秒
android:fromXDelta="0" //初始X
android:fromYDelta="0" //初始Y
android:toXDelta="100" //結束位置X
android:toYDelta="100" //結束位置Y
velocityTracker.computeCurrentVelocity(1000);
int xVelocity = (int) velocityTracker.getXVelocity();
int yVelocity = (int) velocityTracker.getYVelocity();
VelocityTracker velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(event);
ViewConfiguration.get(getContext()).getScaledTouchSlop();
ObjectAnimator.ofFloat(targetView, "translationX", 0, 100).setDuration(100).start();
ObjectAnimator.ofFloat(targetView,"translationX",0,100).setDuration(100).start();
public void scrollTo(int x,int y) {
if (mScrollX != x || mScrollY != y) {
int oldX = mScrollX;
int oldY = mScrollY;
mScrollX = x;
mScrollY = y;
invalidateParentCaches();
onScrollChanged(mScrollX,mScrollY,oldX,oldY);
if (!awakenScrollBars()) {
postInvalidateOnAnimation();
//創建Scroller
Scroller scroller = new Scroller(mContext);
// 自訂的方法,緩慢滾動到指定位置
private void smoothScrollTo(int destX,int destY, int time) {
int scrollX = getScrollX();
int deltaX = destX -scrollX;
// 1000ms內滑向destX,效果就是慢慢滑動
mScroller.startScroll(scrollX, 0, deltaX, 0, time);
invalidate();
}
//自訂的方法,緩慢滾動到指定位置
private void smoothScrollTo(int destX, int destY, int time) {
int scrollX = getScrollX();
int deltaX = destX - scrollX;
// 1000ms內滑向destX,效果就是慢慢滑動
mScroller.startScroll(scrollX, 0, deltaX, 0, time);
invalidate();
}
//計算一段時間間隔內偏移的距離,並返回是否滾動結束的標記
public class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById(R.id.btIntentService).setOnClickListener{
//啟動IntentService
startService(new Intent(MainActivity.this, MyIntentService.class))
}
}