2012-09-27 14 views
7

este es mi código para arrastrar la pantalla actual.arrastre lento o rápido hacia arriba (desplazamiento) usando el robot

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 

scroll está trabajando pero muy lento.

Así que para desplazarse rápidamente qué cambios en el código requerido?

Respuesta

9

que se enfrentó al mismo problema, lo que hay que hacer es ajustar la siguiente línea de código,

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

Esto aumentará su desplazamiento velocidad, cuanto menor es el conteo de pasos, más rápido es el desplazamiento!

+0

Muchas gracias Royston Pinto, trabajando bien en mi teléfono 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; 
     } 
    }); 
    } 
} 

ver éste es un uso completo Android Drag and drop images on the Screen?

+0

uso robotium para automatización, aquí no se requiere interacción del usuario, no se requiere setOnTouchListener. Mi código anterior funciona pero quiero desplazar rápidamente la pantalla actual. de todos modos, gracias NagarjunaReddy por su respuesta y prueba. –

Cuestiones relacionadas