開始學習畫布並且到目前爲止有兩個類(主要用於調用視圖和視圖) View類onDraw創建一個目標(即每個目標的數目顏色不同)繪製用戶在畫布上觸摸過的圓圈
我有一個ontouch listenerer設置爲記錄x和y的用戶點擊其中
我的麻煩則繪製新的圓圈/點出了用戶觸摸更新,類
主類
public class StartScreen extends Activity {
DrawView drawView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.WHITE);
setContentView(drawView);
}
繪圖類
public class DrawView extends View implements View.OnTouchListener {
private Paint paint[];
private Context context;
private Canvas canvas;
//definging some variables
public DrawView(Context pContext) {
super(pContext);
this.context = pContext;
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
paint = new Paint[5];
setupColours();
// setting varibale like raduis etc
}
private void setupColours() {
// Creating Arrray of Paint Colours
}
@Override
public void onDraw(Canvas pCanvas) {
canvas = pCanvas;
newRadius = radius;
for (int i = 0; i < rings; i++) {
if (i == 3) {
canvas.drawCircle(centreWidth, centreHeight, newRadius, paint[0]);
} else {
canvas.drawCircle(centreWidth, centreHeight, newRadius, paint[1]);
}
canvas.drawCircle(centreWidth, centreHeight, newRadius - targetBoundary, paint[i/2]);
newRadius = newRadius - ringOffset;
}
this.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TAG2", "x: " + event.getX() + " y: " + event.getY());
drawHit(event.getX(), event.getY());
return true;
}
public void drawHit(float hitX, float hitY) {
Log.d("HIT", "Hit being drawn");
Paint paint2 = new Paint();
paint2.setColor(Color.BLACK);
canvas.drawCircle(hitX, hitY, 100, paint2);
}
的方法被稱爲但圓未被繪製。我究竟做錯了什麼。謝謝
已更新類 –
[Draw Circle on touch](http://stackoverflow.com/questions/11796357/draw-circle-on-touch) – bummi