Android实现图片浮动随意拖拽效果
本文实例为大家分享了Android实现图片浮动拖拽效果的具体代码,供大家参考,具体内容如下
实现步骤
1.先自定义一个浮动工具类
publicclassMoveImageextendsImageView{ /** * *浮动工具类 * */ privateintlastX=0; privateintlastY=0; privateintdx; privateintdy; privatefloatmovex=0; privatefloatmovey=0; privateintscreenWidth; privateintscreenHeight; publicMoveImage(Contextcontext,AttributeSetattrs){ super(context,attrs); screenWidth=ScreenUtils.getWidth(context); screenHeight=ScreenUtils.getHeight(context); } @Override publicbooleanonTouchEvent(MotionEventevent){ switch(event.getAction()){ caseMotionEvent.ACTION_DOWN: lastX=(int)event.getRawX(); lastY=(int)event.getRawY(); movex=lastX; movey=lastY; break; caseMotionEvent.ACTION_MOVE: dx=(int)event.getRawX()-lastX; dy=(int)event.getRawY()-lastY; intleft=getLeft()+dx; inttop=getTop()+dy; intright=getRight()+dx; intbottom=getBottom()+dy; if(left<0){ left=0; right=left+getWidth(); } if(right>screenWidth){ right=screenWidth; left=right-getWidth(); } if(top<0){ top=0; bottom=top+getHeight(); } if(bottom>screenHeight){ bottom=screenHeight; top=bottom-getHeight(); } layout(left,top,right,bottom); lastX=(int)event.getRawX(); lastY=(int)event.getRawY(); break; caseMotionEvent.ACTION_UP: //避免滑出触发点击事件 if((int)(event.getRawX()-movex)!=0 ||(int)(event.getRawY()-movey)!=0){ returntrue; } break; default: break; } returnsuper.onTouchEvent(event); } }
2.xml布局的引用
3.activity的实现
privateMoveImageiv_phone_bar;//签到图片 iv_phone_bar=(MoveImage)view.findViewById(R.id.iv_phone_bar); iv_phone_bar.setOnClickListener(this); //签到 caseR.id.iv_phone_bar: startActivity(newIntent(getActivity(),SignAcitvity.class));//点击跳转页面 break;
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。