介绍
这篇文章主要介绍怎么使用Android实现图片浮动随意拖拽效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
本文实例为大家分享了Android实现图片浮动拖拽效果的具体代码,供大家参考,具体内容如下
实现步骤
1。先自定义一个浮动工具类
public class MoveImage extends ImageView {/* * ,* ,*浮动工具类 ,* ,*/,private int lastX =, 0; ,private int lastY =, 0; ,private int  dx; ,private int  dy; ,private float movex =, 0; ,private float movey =, 0; ,private int  screenWidth; ,private int  screenHeight; ,public MoveImage (Context 上下文,AttributeSet attrs), { ,超级(上下文,attrs);=,,screenWidth  ScreenUtils.getWidth(上下文);=,,screenHeight  ScreenUtils.getHeight(上下文); ,} ,@Override ,public boolean  onTouchEvent (MotionEvent 事件),{ ,switch (event.getAction ()), { ,case MotionEvent.ACTION_DOWN:=,lastX (int), event.getRawX ();=,lastY (int), event.getRawY ();=,,movex  lastX;=,,movey  lastY; ,打破; ,case MotionEvent.ACTION_MOVE:=,dx (int), event.getRawX(),安康;lastX;=,dy (int), event.getRawY(),安康;lastY; ,int left =, getLeft (), +, dx; ,int top =, getTop (), +, dy; ,int right =, getRight (), +, dx; ,int bottom =, getBottom (), +, dy; ,if (left & lt;, 0), {=,left 0;=,,right  left +, getWidth (); ,} ,if (right 祝辞,screenWidth), {=,,right  screenWidth;=,,left  right 作用;getWidth (); ,} ,if (top & lt;, 0), {=,top 0;=,,bottom  top +,获得(); ,} ,if (bottom 祝辞,screenHeight), {=,,bottom  screenHeight;=,,top  bottom 作用;获得(); ,} ,布局(左,,,,对,,底部);=,lastX (int), event.getRawX ();=,lastY (int), event.getRawY (); ,打破; ,case MotionEvent.ACTION_UP: ,//避免滑出触发点击事件 ,if ((int), (event.getRawX(),安康;movex), !=, 0 ,| |,(int), (event.getRawY(),安康;movey), !=, 0), { ,return 真实; ,} ,打破; ,默认值: ,打破; ,} ,return super.onTouchEvent(事件); ,} }
2。xml布局的引用
& lt; com.zjtd.bzcommunity.text.MoveImage ,android: id=癅 + id/iv_phone_bar" ,android: layout_width=皐rap_content" ,android: layout_height=皐rap_content" ,android: layout_alignParentBottom=皌rue" ,android: layout_alignParentRight=皌rue" 70年,android: layout_marginBottom=癲p" https://www.yisu.com/zixun/, android: src=" @drawable/my_qiandao_icon "/>
3。活动的实现
private MoveImage iv_phone_bar;//签到图片 iv_phone_bar =, (MoveImage), view.findViewById (R.id.iv_phone_bar); iv_phone_bar.setOnClickListener(这个);//,签到 case R.id.iv_phone_bar: ,startActivity (new 意图(getActivity (),, SignAcitvity.class));//点击跳转页面 ,打破;