0
我想畫一條直線,沿着我的手指觸摸畫布,這樣ACTION_DOWN點是起點,ACTION_UP是終點。手指的路徑可以是任何東西,但最終數字應該是從起點到終點的一條線。請幫助我使用onDraw()函數。繪圖 - Android編程
我想畫一條直線,沿着我的手指觸摸畫布,這樣ACTION_DOWN點是起點,ACTION_UP是終點。手指的路徑可以是任何東西,但最終數字應該是從起點到終點的一條線。請幫助我使用onDraw()函數。繪圖 - Android編程
,當你從一個點觸摸手指到另一個 這是 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));
}
}
謝謝。但是通過這段代碼,我看不到線條,直到我從屏幕上擡起手指。如果可以看到手指後面的線條,那將會很好。 – user4229427 2014-11-08 17:38:13
保持代碼的一次... – 2014-11-08 05:45:54
看看Android範例,在您的SDK目錄中有一個「FingerPaint」,它處理您的要求 – rupps 2014-11-08 05:57:01