안드로이드 다이얼로그

조회수 1356회

다이얼 로그로 사인하는 창을 만들려고 하는데요. 다이얼로그 만들기 전에 하나의 엑티비티로 만들 떄는 싸인이 되었는데 다이얼로그로 만드니까 싸인이 안돼요 어떤게 문제일까요ㅜㅜ


public class ContentMainActivity extends AppCompatActivity {
    DrawPoint drawPoint;
    CanvasView mView;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_content_main);
    }
    public void testonclick(View v){
       // Intent intent=new Intent(getApplicationContext(),SignpadActivity.class);
        //startActivity(intent);
        Context mContext = getApplicationContext();

        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.signpad, (ViewGroup) findViewById(R.id.signlayout));
        getWindow().setFlags(
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        mView=new CanvasView(this);
        drawPoint=new DrawPoint();
        FrameLayout frame=(FrameLayout)layout.findViewById(R.id.signmainLayout);
        frame.addView(mView,0);
        AlertDialog.Builder aDialog = new AlertDialog.Builder(ContentMainActivity.this);
        aDialog.setTitle("사인을 하세요.");
        aDialog.setView(layout);
        aDialog.setPositiveButton("확인", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        AlertDialog ad = aDialog.create();
        ad.show();
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                drawPoint.addPoint(event.getRawX(),event.getRawY(),false);
                mView.invalidate();
            case MotionEvent.ACTION_MOVE:
                drawPoint.addPoint(event.getRawX(),event.getRawY(),true);
                mView.invalidate();
        }
        Log.d("onTouchEvent","2");
        return true;
    }
    protected class CanvasView extends View {
        public CanvasView(Context context) {
            super(context);
        }
        public void onDraw(Canvas canvas){
            drawCanvas(canvas);
            Log.d("onDraw","3");
        }
        public void drawCanvas(Canvas canvas){
            for(int i=0;i<drawPoint.arrayTouchPoint.size();i++){
                if(drawPoint.arrayTouchPoint.get(i).draw){
                    canvas.drawLine(drawPoint.getX(i-1),drawPoint.getY(i-1),drawPoint.getX(i),drawPoint.getY(i),drawPoint.paint);
                }
                else{
                    canvas.drawPoint(drawPoint.getX(i),drawPoint.getY(i),drawPoint.paint);
                }
                this.invalidate();;
            }
            Log.d("drawCanvas","4");
        }
    }
}

public class DrawPoint {
    ArrayList<TouchPoint> arrayTouchPoint;

    Paint paint;
    int color = Color.BLACK;

    public DrawPoint() {
        arrayTouchPoint = new ArrayList<TouchPoint>();
        this.paint = new Paint();

        paint.setStrokeWidth(3);
        paint.setColor(color);
        paint.setAntiAlias(true);
        Log.d("DrawPoint","5");
    }

    public class TouchPoint {
        float x;
        float y;
        boolean draw;

        public TouchPoint(float x, float y) {
            this.x = x;
            this.y = y;
            Log.d("TouchPoint","6");
        }
    }
        public float getX(int index) {
            return arrayTouchPoint.get(index).x;
        }
        public float getY(int index){
            return arrayTouchPoint.get(index).y;
        }

        public void addPoint(float x,float y, boolean draw){
            arrayTouchPoint.add(new TouchPoint(x,y));
            arrayTouchPoint.get(arrayTouchPoint.size()-1).draw=draw;
        Log.d("addPoint","7");
        }


}

이미지

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)