View跟手移动

QuibblerQuibbler 2020-04-01 约 3 分钟 2051 次阅读

View跟手移动

经常会遇到用手指拖动控件移动的情况。看似高大上的效果其实很简单,就是根据触摸MotionEvent事件设置View的位置。

关键代码就是在onTouchEvent中去更新设置View的位置。Android提供了简单的方法:setTranslationX() 和setTranslationY() 。

public class MyView extends View {
    
        private float mLastX = 0;
        private float mLastY = 0;
        
    	...
    	
        @Override
        public boolean onTouchEvent(MotionEvent event) {
        
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    mLastX = event.getX();
                    mLastY = event.getY();
                    break;
                    
                case MotionEvent.ACTION_MOVE:
                    setTranslationX(getX() + (event.getX() - mLastX));
                    setTranslationY(getY() + (event.getY() - mLastY));
                    break;
                    
                case MotionEvent.ACTION_UP:
                case MotionEvent.ACTION_CANCEL:
                    break;
            }
            return true;
        }
        
    }

对于极少极少部分Android3.0以前的版本,可以通过nineoldandroids动画兼容库实现。

相关推荐

WilliamChart:轻量美观的 Android 图表库实战
精选开源

WilliamChart:轻量美观的 Android 图表库实战

WilliamChart:轻量美观的 Android 图表库实战数据可视化是运动、健康、金融、统计类 App 的刚需。MPAndroidChart 功能最全但偏重复杂,WilliamChart 走的则是"轻量 + 美观 + Kotlin 原生"路线——v3 用 Kotlin 完全重写,API 极简,一行 chart.animate(dataSet) 就能把数据画成带动画的折线/柱状/环形图,开箱即

175