2012-12-04 30 views
1

我寫了一個應用程序,可以拖動圖像然後彈回圖像。但是回彈的速度太快了。我已經嘗試過,但無法找到減慢速度的方法。如何減緩圖片回彈時的速度

如何控制此速度?

public class CustomViewActivity extends Activity { 

    float mx,my; 
    ImageView switcherView; 
    Bitmap bitmap; 

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

     switcherView = (ImageView) this.findViewById(R.id.img); 
     bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.kh06); 
     switcherView.setImageBitmap(bitmap); 

     switcherView.setOnTouchListener(new View.OnTouchListener() { 
      public boolean onTouch(View arg0, MotionEvent event) { 
       float curX, curY; 
       //System.out.println(switcherView.getScrollX()+"--------view axis-----"); 
       switch (event.getAction()) {   
        case MotionEvent.ACTION_DOWN: 
         mx = event.getX(); 
         break; 
        case MotionEvent.ACTION_MOVE: 
         curX = event.getX();  
         switcherView.scrollBy((int) (mx - curX), 0); 
         mx = curX; 
         break; 
        case MotionEvent.ACTION_UP:             
         switcherView.scrollTo(0, 0); 
         break; 
       } 
       return true; 
      } 
     }); 
    } 
    } 

圖像的縮放類型是中心,圖像還沒有放大。

回答

0

你需要寫在這裏的一些代碼

case MotionEvent.ACTION_UP:             
    switcherView.scrollTo(0, 0); 
    break; 

而不是直接搬回0,0把一個for循環,去0,0從當前位置在許多迭代。有些事情是這樣的。如果從從右向左拖動,但

case MotionEvent.ACTION_UP:             
    new Timer().schedule(new TimerTask() { 

        @Override 
        public void run() { 

         MainActivity.this.runOnUiThread(new Runnable() { 

          public void run() { 
           myImage.scrollTo((int) mx, 0); 
           myImage.invalidate(); 

          } 
         }); 

         if (mx > 0) { 
          mx -= 1; 
         } else { 
          cancel(); 
         } 



        } 
       }, 100,10); 

更新 這是代碼工作時,從拖動左到右工作不正常,以便進行糾正你的自我。

+0

感謝您的回答 – Xoangle

0

MotionEvent.ACTION_UP的情況下,致電switcherView.scrollTo(0, 0)通知Android將圖像移動到指定位置。

如果你想這個動作慢下來,那麼你需要指定在ImageView switcherView

動畫見TranslateAnimation類。我懷疑你只需要指出正確的方向,谷歌搜索這提供了許多參考。

+0

感謝您的指導,我已經檢查過,我想upvote你,但我沒有權限,所以謝謝 – Xoangle