开始学习画布并且到目前为止有两个类(主要用于调用视图和视图) 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