
그림같이 만들어야되는데요 아무리해도 잘안되네요 ㅠㅠ
MyView.Java
package com.example.myapplication8;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import java.util.ArrayList;
class MyPoint {
float x, y;
int color;
MyPoint(float x, float y, int c) {
this.x = x; this.y = y; this.color = c;
}
}
public class MyView extends View {
private static final int R = 10;
private ArrayList<MyPoint> mPoints = new ArrayList<>();
private Paint mPaint = new Paint();
private int mCurColor = Color.RED;
public MyView(Context context) {
super(context);
}
public
MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public
void
setPaintColor(int color) {
mCurColor = color;
}
@Override
protected void onDraw(Canvas canvas) {
for (int i = 0; i < mPoints.size(); i += 2) {
MyPoint myPoint = mPoints.get(i);
mPaint.setColor(myPoint.color);
canvas.drawRect(myPoint.x - R, myPoint.y - R, myPoint.x + R, myPoint.y + R, mPaint);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
mPoints.add(new MyPoint(event.getX(), event.getY(), mCurColor));
invalidate();
return true;
case MotionEvent.ACTION_UP:
return true;
}
return super.onTouchEvent(event);
}
}
MyView.Java 에서 Context 나 Color 등 다 빨간쭐 뜨길래 import 해서 일단 오류는 없앴는데 그게 맞는지도 모르겠고.... 혹시 도와주실수 있을까요.
메인액티비티와 레이아웃을 추가로 작성해 완성해야 합니다 ㅠ