Android 프로그래밍에 익숙하지 않고 간단한 드로잉 앱으로 시작되었습니다. 많은 브라우징을 한 후에 코드를 찾아서 대조했지만 코드가 작동하지 않는 것 같습니다. 앱이 흰색 화면으로 열리지 만 터치하고 끌면 아무 것도하지 않습니다. 보이지 않을 선들이 없습니다. 그냥 흰색 화면.Android 드로잉 앱이 충돌 함
다음은 코드입니다.
package com.drawing.emeraldsoul.drawingapp;
import android.app.Activity;
import android.content.res.Resources;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
class MyView extends View {
// setup initial color
private final int paintColor = Color.BLACK;
// defines paint and canvas
private Paint drawPaint;
private Path path = new Path();
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
setFocusable(true);
setFocusableInTouchMode(true);
setupPaint();
}
// Setup paint with color and stroke styles
private void setupPaint() {
drawPaint = new Paint();
drawPaint.setColor(paintColor);
drawPaint.setAntiAlias(true);
drawPaint.setStrokeWidth(5);
drawPaint.setStyle(Paint.Style.STROKE);
drawPaint.setStrokeJoin(Paint.Join.ROUND);
drawPaint.setStrokeCap(Paint.Cap.ROUND);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, drawPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float pointX = event.getX();
float pointY = event.getY();
// Checks for the event that occurs
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(pointX, pointY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(pointX, pointY);
break;
default:
return false;
}
// Force a view to draw again
postInvalidate();
return true;
}
}
public class MainActivity extends Activity {
public MainActivity() {
super();
}
}
주 파일은 MainActivity이므로 빈 생성자를 사용하여 공용 클래스를 추가했습니다. View에서 확장하는 MainActivity 클래스에서 전체 페인트 코드를 추가하려고하면 "오류가 발생하여 생성자가 없습니다."라는 오류 메시지와 함께 응용 프로그램이 충돌하거나 시작되지 않습니다. 그래서 나는 이렇게 코딩했다. 이것이 옳은지 나는 확신하지 못한다.
아무도 내가 잘못 가고 있다고 말할 수 있습니까?
미리 감사, Esash
이 MyView 클래스는 훌륭하지만, MainActivity가 그것에 대해 어떻게 알고 싶습니다. 당신은 당신이 그 곳 어디에도 포함시키지 않았다고 말합니다. 그것은 단지 같은 우주에서 공존합니다. 어쩌면 같은 PC에서. 하지만 그게 작동하지 않습니다 :) – Vucko
[사용자 정의보기 만들기] (https://developer.android.com/training/custom-views/index.html) –