Android实现拖动效果的两种方法-创新互联

因为最近项目的需要,需要实现一个拖动效果,看了一下网上刚好有这种拖动效果的demo,代码大概如下:

成都创新互联公司是一家专业提供姑苏企业网站建设,专注与网站设计制作、网站建设H5网站设计、小程序制作等业务。10年已为姑苏众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
private void initListener(){
    screenWidth = getScreenWidth(this);//获取屏幕宽度
    screenHeight = getScreenHeight(this) - getStatusHeight(MainActivity.this);//屏幕高度-状态栏
    testTv.setOnTouchListener(new View.OnTouchListener() {
      @Override
      public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {

          case MotionEvent.ACTION_DOWN:
            lastX = (int) event.getRawX();
            lastY = (int) event.getRawY();
            break;

          case MotionEvent.ACTION_MOVE:
            int dx = (int) event.getRawX() - lastX;
            int dy = (int) event.getRawY() - lastY;

            int top = v.getTop() + dy;


            int left = v.getLeft() + dx;


            if (top <= 0) {
              top = 0;
            }
            if (top >= screenHeight - testTv.getHeight() ) {
              top = screenHeight - testTv.getHeight();
            }
            if (left >= screenWidth - testTv.getWidth()) {
              left = screenWidth - testTv.getWidth();
            }

            if (left <= 0) {
              left = 0;
            }


            v.layout(left, top, left+v.getWidth(), top+v.getHeight());

            v.postInvalidate();

            lastX = (int) event.getRawX();
            lastY = (int) event.getRawY();

        break;
        case MotionEvent.ACTION_UP:
        break;

        }
        return true;//这里根据项目需要选择false与true
      }
    });
  }


标题名称:Android实现拖动效果的两种方法-创新互联
链接地址:http://www.hxwzsj.com/article/ccgosg.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都响应式网站建设 成都网站建设 网站设计公司 成都网站建设 成都响应式网站建设公司 重庆电商网站建设 高端网站建设 网站建设开发 移动手机网站制作 成都网站建设 成都定制网站建设 营销型网站建设 营销网站建设 定制网站建设多少钱 成都响应式网站建设 手机网站制作 网站建设 成都网站设计 网站设计制作 网站制作公司 成都网站制作 外贸网站设计方案