초기화면에 흰색 배경에서 그림 다 그린 후
전체 지우기로 흰색 채우고싶은데요.
어떻게 해야하죠?
감이 안와요 ㅠㅠ
FreeLine.java
public void onClick11(View v){
final Button mSize = (Button)findViewById(R.id.btu_color);
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
Menu menu = popup.getMenu();
inflater.inflate(R.menu.popupmenu2, menu);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
if(id == R.id.Color_Black){
mSize.setText("Black");
mSize.setTextColor(Color.BLACK);
myView.colorState=MyView.BLACK_STATE;
}
if(id == R.id.Color_Red){
mSize.setText("Red");
mSize.setTextColor(Color.RED);
myView.colorState=MyView.RED_STATE;
}
if(id == R.id.Color_Blue){
mSize.setText("Blue");
mSize.setTextColor(Color.BLUE);
myView.colorState=MyView.BLUE_STATE;
}
if(id == R.id.Color_Green){
mSize.setText("Green");
mSize.setTextColor(Color.GREEN);
myView.colorState=MyView.GREEN_STATE;
}
if(id == R.id.Color_Yellow){
mSize.setText("Yellow");
mSize.setTextColor(Color.YELLOW);
myView.colorState=MyView.YELLOW_STATE;
}
return false;
}
});
popup.show();
}
public void onClick2(View v){
int id = v.getId();
if(id == R.id.btu_clear){
myView.colorState=MyView.WHITE_STATE;
Toast.makeText(this, "지우개", Toast.LENGTH_SHORT).show();
}
if(id == R.id.but_thickness){
Toast.makeText(this, "소스 구현 중입니다.", Toast.LENGTH_SHORT).show();
}
}
MyView.java
public class MyView extends View{
ArrayList<Point> list;
static final int RED_STATE=0;
static final int BLUE_STATE=1;
static final int YELLOW_STATE=2;
static final int WHITE_STATE=3;
static final int BLACK_STATE=4;
static final int GREEN_STATE=5;
int mStrokeWidth = 10; // 시작 선 두께
int colorState = BLACK_STATE; // 시작 선
public void init(){
list=new ArrayList<Point>();
Paint redPaint = new Paint();
redPaint.setColor(Color.RED);
redPaint.setStrokeWidth(mStrokeWidth); //선의 굵기
redPaint.setAntiAlias(true);//경계면을 부드럽게 처리하기
Paint bluePaint = new Paint();
bluePaint.setColor(Color.BLUE);
bluePaint.setStrokeWidth(mStrokeWidth); //선의 굵기
bluePaint.setAntiAlias(true);//경계면을 부드럽게 처리하기
Paint yellowPaint = new Paint();
yellowPaint.setColor(Color.YELLOW);
yellowPaint.setStrokeWidth(mStrokeWidth); //선의 굵기
yellowPaint.setAntiAlias(true);//경계면을 부드럽게 처리하기
Paint clearPaint1 = new Paint();
clearPaint1.setColor(Color.WHITE);
clearPaint1.setStrokeWidth(20); //선의 굵기
clearPaint1.setAntiAlias(true);//경계면을 부드럽게 처리하기
Paint blackPaint = new Paint();
blackPaint.setColor(Color.BLACK);
blackPaint.setStrokeWidth(mStrokeWidth); //선의 굵기
blackPaint.setAntiAlias(true);//경계면을 부드럽게 처리하기
Paint greenPaint = new Paint();
greenPaint.setColor(Color.GREEN);
greenPaint.setStrokeWidth(mStrokeWidth); //선의 굵기
greenPaint.setAntiAlias(true);//경계면을 부드럽게 처리하기
paintList[0]=redPaint;
paintList[1]=bluePaint;
paintList[2]=yellowPaint;
paintList[3]=clearPaint1;
paintList[4]=blackPaint;
paintList[5]=greenPaint;
}
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
for(int i=0 ;i < list.size(); i++){
Point p = list.get(i);
if(!(p.isStart)){ //해당 인텍스의 isStart 값이 true가 아니라면
canvas.drawLine(list.get(i-1).x, list.get(i-1).y,list.get(i).x, list.get(i).y, paintList[list.get(i).colorState]); //선의 속성을 가지고 있는 paint객체
}
}
}