2012-03-31 6 views
0

에서 나는 이미지를 그릴 어디 코드를 가지고 : 내 활동이 이미지를 그릴 수 있습니다,하지만 난 5 월 레이아웃을 변경하지 않으 어떻게캔버스 및 도면 이미지 레이아웃

class Panel extends View { 

     public Panel(Context context) { 
      super(context); 
     } 

     @Override 
     public void onDraw(Canvas canvas) { 
      Bitmap _scratch = BitmapFactory.decodeResource(getResources(), R.drawable.calvin_logo_small); 
      canvas.drawColor(Color.WHITE); 
      canvas.drawBitmap(_scratch, x-point, y-point, null); 
     } 
    } 

. 나는 레이아웃을 가지고있다 : setContentView(R.layout.main); 이것은 캔버스로이 lauout에 그릴 수 있는가? 나는이 활동을하고 있으며,이 배치에는 많은 구성 요소가 있습니다. 캔버스로 클릭하는 위치의 이미지 만 원합니다. 이것은 좋은 생각입니다. 내 setContentView(R.layout.main);으로 활동을 시작하는 곳에서 신청을 시작합니다. 그런 다음 화면을 클릭하고 캔버스를 클릭 한 위치에 그림을 그립니다. 이것은 가능합니까?

답변

1

코드가 작동해야합니다. 보기의 경우 onTouchEvent()을 무시하고 터치 이벤트의 좌표를 필드 변수에 저장하고 invalidate()보기를 onDraw()이 호출되도록 저장하십시오. onDraw()의 좌표를 사용하여 이미 완료 한 것처럼 이미지를 렌더링하십시오.

성능을 향상 시키려면 비트 맵이 변경되지 않는 경우 캐시 할 수 있습니다.