全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android 自定义可拖拽View界面渲染刷新后不会自动回到起始位置

以自定义ImageView为例:

/**
 * 可拖拽ImageView
 * Created by admin on 2017/2/21.
 */
public class FloatingImageView extends ImageView{
  public FloatingImageView(Context context) {
    super(context);
  }
  public FloatingImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
  public FloatingImageView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
  }
  @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  public FloatingImageView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
  }
  int startX;
  int startY;
  int left;
  int top;
  int[] temp = new int[]{ 0, 0 };
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    boolean isMove = false;
    int x = (int) event.getRawX();
    int y = (int) event.getRawY();
    switch (event.getAction()){
      case MotionEvent.ACTION_DOWN: // touch down so check if the
        startX = x;
        startY = y;
        temp[0] = (int) event.getX();
        temp[1] = y - getTop();
        break;
      case MotionEvent.ACTION_MOVE: // touch drag with the ball
        left = x - temp[0];
        top = y - temp[1];
        if(left < 0){//控制左边界不超出
          left = 0;
        }
        layout(left, top, left + getWidth(),top + getHeight());//自由拖拽
        break;
      case MotionEvent.ACTION_UP:
        if (Math.abs(x - startX) > 2 || Math.abs(y - startY) > 2){//判断是否移动,再一定范围内不算是移动,解决触发事件冲突
          //将最后拖拽的位置定下来,否则页面刷新渲染后按钮会自动回到初始位置
          //注意父容器
          RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) getLayoutParams();
          lp.setMargins(left, top,0,0);
          setLayoutParams(lp);
          //确定是拖拽
          isMove = true;
         }
        break;
    }
    return isMove ? true : super.onTouchEvent(event);
   }
}

以上所述是小编给大家介绍的Android 自定义可拖拽View界面渲染刷新后不会自动回到起始位置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # 可拖拽view  # android ListView和GridView拖拽移位实现代码  # Android自定义ListView实现仿QQ可拖拽列表功能  # android RecyclerView侧滑菜单  # 滑动删除  # 长按拖拽  # 下拉刷新上拉加载  # Android利用RecyclerView实现全选、置顶和拖拽功能示例  # Android中在GridView网格视图上实现item拖拽交换的方法  # Android使用RecycleView实现拖拽交换item位置  # Android自定义View实现可以拖拽的GridView  # Android ReboundScrollView仿IOS拖拽回弹效果  # Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除  # Android自定义View实现拖拽效果  # 拖拽  # 自定义  # 小编  # 在此  # 给大家  # 为例  # 所述  # 给我留言  # 感谢大家  # 定下来  # 判断是否  # 疑问请  # 有任何  # LOLLIPOP  # VERSION_CODES  # Build  # defStyleRes  # TargetApi  # defStyleAttr  # int 


相关文章: 早安海报制作网站推荐大全,企业早安海报怎么每天更换?  建站之星ASP如何实现CMS高效搭建与安全管理?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  实例解析Array和String方法  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  想学网站制作怎么学,建立一个网站要花费多少?  音响网站制作视频教程,隆霸音响官方网站?  如何快速搭建虚拟主机网站?新手必看指南  如何在IIS中新建站点并解决端口绑定冲突?  网站图片在线制作软件,怎么在图片上做链接?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  ,石家庄四十八中学官网?  如何注册花生壳免费域名并搭建个人网站?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何在VPS电脑上快速搭建网站?  移民网站制作流程,怎么看加拿大移民官网?  如何选择高效稳定的ISP建站解决方案?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  宝塔新建站点为何无法访问?如何排查?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  建站之星安装需要哪些步骤及注意事项?  如何选择美橙互联多站合一建站方案?  ,怎么在广州志愿者网站注册?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  做企业网站制作流程,企业网站制作基本流程有哪些?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站之星展会模板:智能建站与自助搭建高效解决方案  h5在线制作网站电脑版下载,h5网页制作软件?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  平台云上自主建站:模板化设计与智能工具打造高效网站  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  深圳网站制作的公司有哪些,dido官方网站?  Swift中循环语句中的转移语句 break 和 continue  测试制作网站有哪些,测试性取向的权威测试或者网站?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  建站之星安装失败:服务器环境不兼容?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  建站主机如何选?性能与价格怎样平衡?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  *服务器网站为何频现安全漏洞?  如何快速完成中国万网建站详细流程?  如何快速搭建自助建站会员专属系统?  如何快速建站并高效导出源代码? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。