android 在view上的指定位置画了一个图片,怎么实现这个图片的拖拽 15
最近在研究一个功能,就是在一个指定位置画一个图片,然后图片可以拖动,求大神给个指点,可以加分,做好有demo,谢谢...
最近在研究一个功能,就是在一个指定位置画一个图片,然后图片可以拖动,求大神给个指点,可以加分,做好有demo,谢谢
展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏15(财富值+成长值)
1个回答
展开全部
你先继承 VIEW . 然后重写以下函数 就可以实现拖拽的功能了.
至于要显示图片,你可以直接在 onDraw里面描绘出来就好
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) getLayoutParams();
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
//layoutParams.rightMargin = -250;
//layoutParams.bottomMargin = -250;
HanoiItem.this.setLayoutParams(layoutParams); //自己继承VIEW的this
break;
}
invalidate();
return true;
}
至于位置,你就可以直接new VIEW 之后直接 用 VIEW.set**实现的啊
至于要显示图片,你可以直接在 onDraw里面描绘出来就好
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) getLayoutParams();
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
//layoutParams.rightMargin = -250;
//layoutParams.bottomMargin = -250;
HanoiItem.this.setLayoutParams(layoutParams); //自己继承VIEW的this
break;
}
invalidate();
return true;
}
至于位置,你就可以直接new VIEW 之后直接 用 VIEW.set**实现的啊
追问
但是这样没有拖拽时的效果
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询