2012-01-11 2 views
0

У меня есть текст Просмотр в макете и установка текста в макете..Но я хочу, чтобы этот текст касался события касания, зависит от события движения. Также как переместить этот текст и установить текст , где я откладываю свой палец с экрана. Я искал в Google и нашел, может получить x и y корды экрана, используя event.getX() и, y = + event.getY() .. но как его использовать чтобы установить текст только в этом положении.переместить текст при касании события движения android

TextView textView = (TextView)findViewById(R.id.textView); 

    // this is the view on which you will listen for touch events 
    View touchView = findViewById(R.id.touchView); 
    touchView.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 

      if (event.getAction() == MotionEvent.ACTION_DOWN) { 

}} 

    } 
thanks 

ответ

3

Ваш вопрос непонятен, что вы имеете в виду, перемещая текст при касании? вы хотите переместить текст, где касается пальца? если вы хотите это сделать, сделайте две переменные x и y в действии и обновите их так.

x = event.getX() // or getRawX(); 
y = event.getY(); 
+0

эй mudasar, на самом деле я хочу, чтобы переместить текст, как мое движение пальца по экрану ..as перетащить текст из одной позиции в другую на экране .. – shyam

+0

и где я должен передать значение х и у средств для набора текста, как использовать X и Y – shyam

+0

это может помочь вам TextView text = new TextView (null); text.setLayoutParams (params); добавьте параметры – Mudasar

0

В зависимости от компоновки вы используете, он должен выглядеть следующим образом:

FrameLayout.LayoutParams lLayoutParam = (FrameLayout.LayoutParams) your_view.getLayoutParams(); 
lLayoutParam.leftMargin = x; 
lLayoutParam.topMargin = y; 
your_FrameLayout.updateViewLayout(your_view, lLayoutParam); 

Я не являюсь экспертом в Android UI, но, насколько мне известно, FrameLayout, кажется, уместно управляйте положением с абсолютными значениями.

0

Используйте следующий код для перемещения текста при перемещении пальца в макете.

write_text.setOnTouchListener(new OnTouchListener() { 
      @SuppressLint("NewApi") 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 
        break; 

       case MotionEvent.ACTION_MOVE: 
        v.setX(event.getRawX() - write_text.getWidth()/2.0f); 
        v.setY(event.getRawY() - write_text.getHeight()/2.0f); 
       } 
       return true; 
      } 
     }); 
Смежные вопросы