Autore Topic: Movimento TextView sull'asse X e Y  (Letto 405 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Movimento TextView sull'asse X e Y
« il: 16 Dicembre 2014, 11:52:24 CET »
0
Salve a tutti!

Io sto cercando di fare muovere una TextView sia sull'asse X che sull'asse Y (insomma per tutto il layout).
Al momento riesco a farla muovere solo sull'asse verticale

posto il codice che uso per far spostare la textView:
Codice (Java): [Seleziona]
        OnTouchListener onTouchListener = new OnTouchListener() {

                        @Override
                        public boolean onTouch(View v, MotionEvent event) {

                                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) v.getLayoutParams();
                                        _xDelta = X - lParams.leftMargin;
                                        _yDelta = Y - lParams.topMargin;

                                        break;
                                case MotionEvent.ACTION_UP:
                                        v.performClick();
                                        displaypos(v);
                                        editText.setTag(custEditTextValue);
                                        break;
                                case MotionEvent.ACTION_POINTER_DOWN:
                                        break;
                                case MotionEvent.ACTION_POINTER_UP:
                                        break;
                                case MotionEvent.ACTION_MOVE:
                                        RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
                                        layoutParams.leftMargin =  X - _xDelta;
                                        layoutParams.topMargin = Y - _yDelta;
                                        layoutParams.rightMargin =Y - _yDelta;
                                        layoutParams.bottomMargin =  X - _xDelta;
                                        v.setLayoutParams(layoutParams);
                                        break;
                                }
                                //drag(event, v);
                    root.invalidate();
                                hideKeyBoard(v);
                                return true;
                        }
                };

purtroppo mi sto perdendo in un bicchiere d'acqua ^^''

suggerimenti??

grazie mille a tutti!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Movimento TextView sull'asse X e Y
« Risposta #1 il: 16 Dicembre 2014, 12:12:29 CET »
0
Suppongo che la TextView sia contenuta dentro un RelativeLayout di cui occupa giù tutto lo spazio verticale, per cui non può muoversi ulteriormente all'interno del layout padre.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Movimento TextView sull'asse X e Y
« Risposta #2 il: 16 Dicembre 2014, 15:45:08 CET »
0
Si avevi ragione tu, in effetti la textView è contenuta in un LinearLayout verticale..... il problema è che se faccio diventare il linearLayout un RelativeLayout l'app crasha all'avvio.... qualche suggerimento?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Movimento TextView sull'asse X e Y
« Risposta #3 il: 16 Dicembre 2014, 16:50:06 CET »
0
Potresti provare a mettere la TextView a "top level", cioè dentro il LinearLayout con entrambi gli attributi match_parent (così sai per certo che occupa tutto lo spazio dello schermo), quindi posizionala con la "gravity" (sperando che ti basti). A questo punto dovresti poterla spostare ovunque col tuo metodo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store