서버에 이미지가 있으면 이미지를 가져와 화면에 뿌려준다음 이미지에서 수정작업을 할수있게 할려합니다.
그런데 onTouchEvent의 invalidate() 때문인지 터치하여 선을 긋고 터치를 때면 그었던 선이 사라져
처음 서버에서 가져온 이미지로 돌아갑니다...
방법좀 알려주세요 TT
@Override
protected void onDraw(Canvas canvas){
//view 핵심 영역
//실제로 화면을 그린다.
if(!"".equals(Common.Update_Treat_Id) && !"".equals(Common.Update_FIle_Name)){
Thread mThread = new Thread(){
@Override
public void run(){
try{
URL url = new URL(Common.Update_File_Url+Common.Update_Chart_Id+"/"+Common.Update_Treat_Id+"/"+Common.Update_FIle_Name.split("#")[0]);
Log.d(Tag, "url :: "+url);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
canvasBitmap = BitmapFactory.decodeStream(is);
}catch (Exception e){
Log.d(Tag, "Exception connect :: "+e.getMessage());
}
}
};
mThread.start();
try{
mThread.join();
canvas.drawBitmap(canvasBitmap, 0, 0, canvasPaint);
canvas.drawPath(path, paint);
Common.Update_Treat_Id = "";
}catch (Exception e){
Log.d(Tag, "Exception canvas.drawBitmap :: "+e.getMessage());
}
}else{
canvas.drawBitmap(canvasBitmap, 0, 0, canvasPaint);
canvas.drawPath(path, paint);
}
}
@Override
public boolean onTouchEvent(MotionEvent event){
//touch에 대한 listener 함수
//detect user touch
float touchX = event.getX();
float touchY = event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
path.moveTo(touchX, touchY);
break;
case MotionEvent.ACTION_MOVE:
path.lineTo(touchX, touchY);
break;
case MotionEvent.ACTION_UP:
drawCanvas.drawPath(path, paint);
path.reset();
break;
default:
return false;
}
invalidate();
return true;
}