안드로이드 개발 질문/답변
(글 수 45,052)
surfaceView에 소켓통신으로 받아온 이미지를
계속해서 그려주고 싶은데 어떻게 해야 되나요?? ㅜㅜ
하루종일 해봐도 잘 안되네요 ㅠㅠ
surfaceCreate부분, change부분, 또는 객체 생성부분 아니면 어디서 받아서 계속 그려주게 해야될까요 ㅠㅠ
너무 안되네요 ㅠㅠㅠ
고수님들 조언 부탁드릴꼐요 ㅠㅠ
2011.12.16 12:14:58
사악미소님의 말씀에 조금 더 추가 한다면..
이미지를 받아오는 곳은 SurfaceView가 아니라도 상관없을 것 같네요.. 이미지를 어디선가 Thread를 통해 소켓으로 받아오시고..
받을 때마다, SufaceView에 holder가 있을 텐데요...
Canvas c = holder.lockCanvas()라는 메소드를 이용하여,
canvas가져오시고, 이 캔버스에
c.drawBitmap()메소드를 이용하여 그려주신다음...
holder.unlockCanvasAndPost(c)를 이용하여 lock을 풀어주시면 됩니다.




onDraw를 상속 받아서 그려 주시면 됩니다.
@Override
protected void onDraw(Canvas canvas) {
if ( mBitmap != null)
{
Rect r = new Rect (0, 0, getWidth(), getHeight());
Paint p = new Paint();
p.setAntiAlias(true);
canvas.drawBitmap(mBitmap, null, r, p);
}
}