View跟手移动 动效

Quibbler 2020-4-1 1730

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动画兼容库实现。


不忘初心的阿甘
最新回复 (0)
    • AI笔记本-欢迎来到 AI 驱动博客时代 🚀
      2
        登录 注册 QQ
返回
仅供学习交流,切勿用于商业用途。如有错误欢迎指出:fluent0418@gmail.com