나는 안드로이드의 새로운 초보자이며, 터치 좌표를 감지하고 원과 터치 경로를 그려주는 간단한 프로그램을 만들고 싶다. 나는 터치를 따라 원을 그어 따르는 간단한 프로그램을 만든다. 그러나 나는 여전히 터치의 길을 할 수 있습니다. 내가 경로로 프로그램을 시작하면 나는 그것이 정상 작동 경로를 제거 할 때 당신은 path
초기화되지 않습니다 ...캔버스 드로잉 경로 in 안드로이드
public class MainActivity extends Activity {
float x = 0;
float y = 0;
LinearLayout layout; //declarea variabilor pentru desenarea cercului
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //specificarea
layout = (LinearLayout)findViewById(R.id.layout); //gasirea id
layout.addView(new CustomView(MainActivity.this));
}
public class CustomView extends View { //crearea unei mape pentru canvas
Bitmap mBitmap;
Paint paint;
Path path;
public CustomView(Context context) {
super(context);
mBitmap = Bitmap.createBitmap(640, 1024, Bitmap.Config.ARGB_8888);
paint = new Paint();
path = new Path();
paint.setColor(Color.BLUE);//culoare cercului desenat
paint.setStyle(Style.FILL);
}
protected void onDraw(Canvas canvas) {//desenarea cercului la atingere
super.onDraw(canvas);
canvas.drawPath(path,paint);
canvas.drawCircle(x, y, 25, paint);
}
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action){
case MotionEvent.ACTION_DOWN:
path.moveTo(event.getX(), event.getY());
path.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
x = event.getX();
y = event.getY();
path.lineTo(x, y);
invalidate();
break;
case MotionEvent.ACTION_UP:
path.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break;
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
'x'와'y'는 어디에 선언되어 있습니까? 코드에 어떤 일이 일어나고 어떤 일이 발생해야합니까? –
x와 y는 터치 스크린을 그리는 동그라미의 중심이며, 프로그램이 터치를 감지하고 화면의 좌표를 표시하고 siwpe touch의 터치와 경로 주위에 원을 그려야합니다. – user2112285
알아 냈습니다. 나는'x'와'y'가 선언 된 곳이 아닌 그들이 사용 된 곳을 물었다. 직면 한 문제에 대해 좀 더 자세하게 설명해야합니다. 코드를 실행할 때 실제로 어떤 일이 일어나는지 설명하지 않았습니다. 원이 그려져 있습니까? 터치가 움직일 때 움직이는가? 그렇다고해서 내 게시물이 "내 코드가 있습니다. 작동하지 않습니다. 어떻게 해결할 수 있습니까?" –