2011-09-16 36 views

回答

0

你會發現在View.onTouchEvent阻力運動。 然後,您可以解釋移動並將其應用於小部件。

您可以使用View.setAnimation更改繪製小部件的位置。但它可能不會改變它的真實位置,所以觸摸仍然會發生在以前的位置。

或者您可以修改窗口小部件的LayoutParams,但應用於View的實際LayoutParams實例取決於添加窗口小部件的父ViewGroup。最簡單的方法是將你的小部件存放在AbsoluteLayout中,並將位置改爲AbsoluteLayout.LayoutParams,其位置是x/y。

1

嘗試下面的代碼: -

int x_cord, y_cord; 
RelativeLayout.LayoutParams layoutParams1; 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // TODO Auto-generated method stub 
     if (v == mImageViewEye1) { 
      System.out.println("Eye1 is Clicked..."); 
      layoutParams1 = (RelativeLayout.LayoutParams) mImageViewEye1 
        .getLayoutParams(); 
      switch (event.getActionMasked()) { 
      case MotionEvent.ACTION_DOWN: 
       break; 
      case MotionEvent.ACTION_MOVE: 
       x_cord = (int) event.getRawX(); 
       y_cord = (int) event.getRawY(); 
       scaleimage(layoutParams1); 
       layoutParams1.topMargin = y_cord - 75; 
       mImageViewEye1.setLayoutParams(layoutParams1); 
       break; 
      default: 
       break; 
      } 
     } 
     return true; 
    } 

    public void scaleimage(RelativeLayout.LayoutParams layoutParams) { 
     if (x_cord > windowwidth) { 
      x_cord = windowwidth; 
     } 
     if (y_cord > windowheight) { 
      y_cord = windowheight; 
     } 
     layoutParams.leftMargin = x_cord - 25; 
     layoutParams.topMargin = y_cord - 75; 
    } 

如果妳有任何查詢,然後告訴我。

相關問題