Android Scroll实现弹性滑动 二 随手弹性滑动

来源:互联网 发布:软件开发英语不会 编辑:程序博客网 时间:2024/05/20 07:17

这一回是拖动自己绘画出东西,使用弹性滑动。
原理一样,就是需要注意onDraw函数自己就会频繁调用,所需要做的就是将坐标弹性设置,不要一步到位,要将过程按照一段时间内分成多次完成。

代码如下:

public class MyView extends View {    private int textX=20,textY=20;    private Scroller mScroller;    public MyView(Context context) {        super(context);        setFocusable(true);        mScroller=new Scroller(context);    }    @Override protected void onDraw(Canvas canvas) {        Paint paint = new Paint();        paint.setColor(Color.BLACK);        paint.setTextSize(40);        canvas.drawText("Game", textX, textY, paint);        super.onDraw(canvas);    }    @Override public boolean onTouchEvent(MotionEvent event) {        int x=(int)event.getX();        int y=(int)event.getY();        int dx=x-textX;        int dy=y-textY;        smoothScrollByScroller(dx, dy);        return true;    }    private void smoothScrollByScroller(int dx,int dy){        mScroller.startScroll(textX, textY, dx, dy, 500);        invalidate();    }    @Override    public void computeScroll() {        if (mScroller.computeScrollOffset()) {            textX=mScroller.getCurrX();            textY=mScroller.getCurrY();            postInvalidate();        }    }}public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(new MyView(this));    }}

再见。下次讲拖动控件的弹性滑动,就是滑到哪停哪。

0 0
原创粉丝点击