다이얼 로그로 싸인하는 창을 만들려고 하는데요. 다이얼로그 만들기 전에 하나의 엑티비티로 만들 떄는 싸인이 되었는데 다이얼로그로 만드니까 싸인이 안돼요 어떤게 문제일까요ㅜㅜ
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");
}
}
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");
}
}
}
