0

現在我有一個ImageView和它的一個圓形,在略低於中心位置(但這不應該)。Android touchevent ---需要幫助/建議根據senario

我已經編寫了用於ACTION_DOWN的ACTION_UP的ImageView onTouch代碼,現在考慮用戶已將手指放在圓上並移動並移動....我想在用戶移動手指並超出CIRCLE圖像的區域時激活一些代碼(只要用戶超過代碼應該昂立一次ececuted區)

這裏是我的代碼

ImageView view1 = (ImageView) findViewById(R.id.fccircledetectionarea); 

     view1.setOnTouchListener(new OnTouchListener() 
     { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) 
     { 
      ImageView imageView=(ImageView) findViewById(R.id.fccircledetectionarea); 
      switch(event.getAction()) 
      { 
      case MotionEvent.ACTION_DOWN: 
       final float x=imageView.getTop(); 


       Toast.makeText(PlayScreen.this, "Top Position:"+x, Toast.LENGTH_SHORT).show(); 
       break; 
      case MotionEvent.ACTION_UP: 
       Toast.makeText(PlayScreen.this, "Over", Toast.LENGTH_SHORT).show(); 
       break; 

      case MotionEvent.ACTION_MOVE: 


       Toast.makeText(PlayScreen.this, "Over", Toast.LENGTH_SHORT).show(); 
       break; 

      } 
      return true; 
     } 
    }); 

我無法通過ACTION_MOVE存檔我的目標:它啓動中,如果用戶移動手指工作圓

我的第二個查詢是如何設置APLHA這個ImageView的我已經使用

view1.setAlpha(0); 

但不工作的,我也作出了這樣的ImageView看不見但比我onTouch代碼是不能工作

回答

0

在您的onTouch方法中記錄一個布爾值來檢查用戶是否在圓的範圍內觸摸。

boolean inCircle = java.lang.Math.sqrt(x*x + y*y) <= circleRadius 

其中x是event.getX() - circleCenterX拍攝,y是從event.getY() - circleCenterY採取

+0

(觸摸位置是一個從圓心的偏移量),而圓是像我沒有手動繪製...如何獲得中心imageview –

+0

您可以將ImageView的寬度和高度縮小一半。 –

+0

感謝您的快速響應,但請你解釋一下如何使用,,, boolean inCenter = java.lang.Math.sqrt(x * x + y * y) - >作品 –