마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 UI 출력 질문입니다. 도와주세요 ㅠ

0 추천

그림같이 만들어야되는데요 아무리해도 잘안되네요 ㅠㅠ

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 해서 일단 오류는 없앴는데 그게 맞는지도 모르겠고.... 혹시 도와주실수 있을까요.

메인액티비티와 레이아웃을 추가로 작성해 완성해야 합니다 ㅠ

save044 (120 포인트) 님이 2020년 4월 29일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...