任何人都可以帮助我如何在整个图像视图上拖放文本视图。我发现这里drag n drop textview in android文本视图是静态的,在我的app textview中,图像视图是动态变化的。 `@覆盖 public boolean onTouchEvent(MotionEvent event){
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// Remember our initial down event location.
startX = event.getRawX();
startY = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
float x = event.getRawX();
float y = event.getRawY();
// Calculate move update. This will happen many times
// during the course of a single movement gesture.
scrollByX = x - startX; //move update x increment
scrollByY = y - startY; //move update y increment
startX = x; //reset initial values to latest
startY = y;
invalidate(); //force a redraw
break;
}
return true; //done with this event so consume it
}
我怀疑这段代码,但它无法正常工作。
答案 0 :(得分:2)
您始终可以使用setText排序方法以编程方式更改现有视图的图像和文本。
如果你谷歌它有许多拖放的tutrials。强烈建议你尝试一下。 基本上你要做的是在TextView上实现OnTouchListener,如
textview.setOntouchListener(听);
OnTouchListener onThumbTouch = new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
switch(v.getId())
{
case R.id.slider_thumb_id:
{
switch(event.getAction())
{
case MotionEvent.ACTION_MOVE:
{
}
case MotionEvent.ACTION_UP:
{
}
}
break;
}
}
return true;
}
};
这里从事件属性中获取x和y的值以及触摸事件和 用它来改变textview的位置。我是通过添加/减去边距值来实现的。
编辑: 这就是我更新观点位置所做的 看event.getRawY();将给你与父视图的距离。所以,如果我得到event.getRawY()= 50.我知道我需要文本视图从顶部50像素。
LinearLayout.LayoutParams iconParams = (LinearLayout.LayoutParams)
v.getLayoutParams();
iconParams.topMargin = 50;
v.setLayoutParams(iconParams);
所以现在我选择的视图距离父视图的顶部是50像素。