android自定義view小圓球指哪跑哪
private int cx = 100;
private int cy = 100;
/**
* Canvas canvas畫布.....paint畫筆
* @param canvas
*/
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//中心點x座標,y座標,半徑,畫筆
Paint paint = new Paint();
paint.setColor(Color.RED);//設置顏色
paint.setStrokeWidth(2);//描邊的寬度2個像素
//Paint.Style.FILL填充,,Paint.Style.STROKE描邊 ,,Paint.Style.FILL_AND_STROKE填充並且描邊
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);//設置抗鋸齒
canvas.drawCircle(cx,cy,100,paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
cx = (int) event.getX();
cy = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
cx = (int) event.getX();
cy = (int) event.getY();
break;
case MotionEvent.ACTION_UP:
cx = (int) event.getX();
cy = (int) event.getY();
break;
}
//重新繪製....自動去調用onDraw
postInvalidate();//.........可以使用在子線程
//invalidate();//...只能用在主線程
return true;
}
private int cy = 100;
/**
* Canvas canvas畫布.....paint畫筆
* @param canvas
*/
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//中心點x座標,y座標,半徑,畫筆
Paint paint = new Paint();
paint.setColor(Color.RED);//設置顏色
paint.setStrokeWidth(2);//描邊的寬度2個像素
//Paint.Style.FILL填充,,Paint.Style.STROKE描邊 ,,Paint.Style.FILL_AND_STROKE填充並且描邊
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);//設置抗鋸齒
canvas.drawCircle(cx,cy,100,paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
cx = (int) event.getX();
cy = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
cx = (int) event.getX();
cy = (int) event.getY();
break;
case MotionEvent.ACTION_UP:
cx = (int) event.getX();
cy = (int) event.getY();
break;
}
//重新繪製....自動去調用onDraw
postInvalidate();//.........可以使用在子線程
//invalidate();//...只能用在主線程
return true;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.