2012-09-27 11 views
7

questo codice per trascinare la schermata corrente.trascinamento lento o rapido (scorrimento) utilizzando il robotium

int screenWidth = getActivity().getWindowManager().getDefaultDisplay().getWidth(); 
int screenHeight = getActivity().getWindowManager().getDefaultDisplay().getHeight(); 
int fromX, toX, fromY, toY = 0; 
fromX = screenWidth/2; 
toX = screenWidth/2; 
fromY = (screenHeight/2) + (screenHeight/3); 
toY = (screenHeight/2) - (screenHeight/3); 
int scroll_time = 10000;    
solo.sleep(5000); 
    // Drag UP 
solo.drag(fromX, toX, fromY, toY, 40); 
Log.d(TAG, "Drag 1"); 
    // here default origin (x,y = 0,0) is left upper corner 

qui lo scorrimento funziona ma molto lento.

Quindi per lo scorrimento veloce quali modifiche in questo codice sono necessarie?

risposta

9

Ho affrontato lo stesso problema, quello che dovete fare è regolare la seguente riga di codice,

solo.drag(fromX, toX, fromY, toY, 40); //Change 40 to 10 

Questo aumenterà il vostro scorrimento velocità, più basso è il conteggio dei passi, più veloce è lo scorrimento!

+0

Grazie mille Royston Pinto, lavorando bene al mio telefono Galaxy Ace. –

0
public class MainActivity extends Activity { 
int windowwidth; 
int windowheight;  
ImageView ima1,ima2; 

    private android.widget.RelativeLayout.LayoutParams layoutParams ; 
// private android.widget.RelativeLayout.LayoutParams layoutParams ; 
//private android.widget.RelativeLayout.LayoutParams layoutParams ;   

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    windowwidth = getWindowManager().getDefaultDisplay().getWidth(); 
    windowheight = getWindowManager().getDefaultDisplay().getHeight(); 

    System.out.println("width" +windowwidth); 
    System.out.println("height" +windowheight);    

    ima1 = (ImageView)findViewById(R.id.imageview1); 
    ima1.setOnTouchListener(new View.OnTouchListener() { 

    public boolean onTouch(View v, MotionEvent event) { 
    layoutParams = (RelativeLayout.LayoutParams) ima1.getLayoutParams(); 

    switch(event.getAction())     
     { 
      case MotionEvent.ACTION_DOWN:       
       break;  

      case MotionEvent.ACTION_MOVE: 
       int x_cord = (int) event.getRawX(); 
       int y_cord = (int) event.getRawY(); 

      System.out.println("value of x" +x_cord); 
      System.out.println("value of y" +y_cord);   

       if (x_cord > windowwidth) { 
        x_cord = windowwidth; 
        } 
       if (y_cord > windowheight) { 
        y_cord = windowheight; 
        } 
     layoutParams.leftMargin = x_cord-25; 
     layoutParams.topMargin = y_cord-25; 
     // layoutParams.rightMargin = x_cord-25; 
     // layoutParams.bottomMargin = y_cord-25; 
     ima1.setLayoutParams(layoutParams); 
       break; 
      default: break; 
      } 
      return true; 
     } 
    }); 

    ima2 = (ImageView)findViewById(R.id.imageview2); 
    ima2.setOnTouchListener(new View.OnTouchListener() {   

public boolean onTouch(View v, MotionEvent event) { 
    layoutParams = (RelativeLayout.LayoutParams) ima2.getLayoutParams(); 
      switch(event.getActionMasked()) 
      { 
       case MotionEvent.ACTION_DOWN: 
        break; 
       case MotionEvent.ACTION_MOVE: 
        int x_cord = (int) event.getRawX(); 
        int y_cord = (int) event.getRawY(); 

        System.out.println("value of x1" +x_cord); 
       System.out.println("value of y1" +y_cord);        

        if (x_cord > windowwidth) { 
         x_cord = windowwidth; 
        } 
        if (y_cord > windowheight) { 
         y_cord = windowheight; 
        } 
        layoutParams.leftMargin = x_cord - 25; 
        layoutParams.topMargin = y_cord - 75; 
        ima2.setLayoutParams(layoutParams); 
        break; 
       default: break; 
      } 
      return true; 
     } 
    }); 
    } 
} 

vedere questo è usare pieno Android Drag and drop images on the Screen?

+0

io uso robotium per l'automazione, qui non è richiesta l'interazione dell'utente, non è richiesto setOnTouchListener. Il mio codice sopra funziona ma voglio scorrere velocemente lo schermo corrente. comunque grazie NagarjunaReddy per la tua risposta e prova. –

Problemi correlati