在imageview上拖放textview?

时间:2011-08-24 04:21:08

标签: android drag-and-drop textview

任何人都可以帮助我如何在整个图像视图上拖放文本视图。我发现这里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
 } 

我怀疑这段代码,但它无法正常工作。

1 个答案:

答案 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像素。