2014-11-08 81 views
0

我想畫一條直線,沿着我的手指觸摸畫布,這樣ACTION_DOWN點是起點,ACTION_UP是終點。手指的路徑可以是任何東西,但最終數字應該是從起點到終點的一條線。請幫助我使用onDraw()函數。繪圖 - Android編程

+0

保持代碼的一次... – 2014-11-08 05:45:54

+0

看看Android範例,在您的SDK目錄中有一個「FingerPaint」,它處理您的要求 – rupps 2014-11-08 05:57:01

回答

0

,當你從一個點觸摸手指到另一個 這是 DrawLineView.java此代碼拉繩

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.Path; 
import android.util.AttributeSet; 
import android.view.MotionEvent; 
import android.view.View; 

public class DrawLineView extends View { 

private Paint paint = new Paint(); 
private Path path= new Path(); 
float eventx; 
float eventy; 

public DrawLineView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    paint.setAntiAlias(true); 
    paint.setStrokeWidth(5f); 
    paint.setColor(Color.BLUE); 
    paint.setStyle(Paint.Style.STROKE); 
} 
@Override 
protected void onDraw(Canvas canvas) { 
    canvas.drawPath(path, paint); 

} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    eventx=event.getX(); 
    eventy=event.getY(); 


    switch(event.getAction()){ 
    case MotionEvent.ACTION_DOWN : 
     path.moveTo(eventx, eventy); 

     return true; 
    case MotionEvent.ACTION_UP : 
     path.lineTo(eventx, eventy); 

     break; 
     default : 
      return false; 

    } 
    invalidate(); 

    return true; 
} 

} 

活動啓動它:

import android.app.Activity; 
import android.os.Bundle; 

public class DrawActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new DrawLineView(this, null)); 
} 


} 
+0

謝謝。但是通過這段代碼,我看不到線條,直到我從屏幕上擡起手指。如果可以看到手指後面的線條,那將會很好。 – user4229427 2014-11-08 17:38:13