7

这是我用于拖动当前屏幕的代码。

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

这里滚动工作但很慢。

那么对于快速滚动需要对这段代码进行哪些更改?

4

2 回答 2

9

我遇到了同样的问题,您需要做的是调整以下代码行,

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

这将提高您的滚动速度,步数越低,滚动越快!

于 2012-09-27T06:51:09.753 回答
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;
        }
    });
   }
 }

看到这个它是使用完整的 Android 在屏幕上拖放图像吗?

于 2012-09-27T05:55:32.257 回答