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;
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。