2012-08-02 46 views
1

我正在創建一個應用程序,我想要在我的屏幕中繪製觸摸事件的形狀。任何ApI都會特別獲取觸摸事件的形狀?獲取觸摸形狀在android

任何示例或代碼片段非常感謝。

感謝 納拉揚

+0

你到底要幹什麼?在屏幕上突出顯示用戶觸摸的區域? – fiddler 2012-08-02 14:48:03

+0

雅與觸摸區域的形狀,而不是圓形或任何其他形狀 – AndroidCrazy 2012-08-02 14:53:20

回答

1

該代碼段應達到你想要的東西:

public class TestActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(new DrawingView(this)); 
    } 

    class DrawingView extends SurfaceView { 

     private final SurfaceHolder surfaceHolder; 
     private final Path path = new Path(); 
     private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 

     public DrawingView(Context context) { 
      super(context); 
      surfaceHolder = getHolder(); 
      paint.setStyle(Paint.Style.STROKE); 
      paint.setStrokeWidth(3); 
      paint.setColor(Color.WHITE); 
     } 

     @Override 
     public boolean onTouchEvent(MotionEvent event) { 
      switch(event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       path.moveTo(event.getX(), event.getY()); 
       break; 
      case MotionEvent.ACTION_MOVE: 
       if (surfaceHolder.getSurface().isValid()) { 
        Canvas canvas = surfaceHolder.lockCanvas(); 
        path.lineTo(event.getX(), event.getY()); 
        canvas.drawPath(path, paint); 
        surfaceHolder.unlockCanvasAndPost(canvas); 
       } 
       break; 
      } 
      return true; 
     } 

    } 

}