2011-09-03 3 views
0

나는 이것에 관해 많이 검색하지만 내 원인을 지원하는 것을 찾지 못했습니다. view1은 체스 보드입니다. 저는 canvas.Now를 사용하여 view1을 그립니다. view2 (체스 루크, 비숍의 요소) 체스 보드에 그린 것입니다. 그래서 안내해주세요DrawAViewOnAnother Canvas 사용

1).Is it possible? 
2)If not then what is alternative? ,i donot want to use layout 
+0

답을 업데이트했습니다. 그 질문에 대한 대답, 또는 당신은 더 많은 설명/설명이 필요합니까? – Jakar

답변

1

예 가능합니다. 당신은 이미 당신의 res/drawable 폴더에 drawables로서 rooks 등을 가지고 있어야하고, 각 사각형의 중앙에 대한 ArrayList에 X와 Y 좌표를 기록한 다음, 같은 x와 y에 루크, 기사 등을 그립니다 동등 어구.

조각이 움직일 때마다 플레이어가 조각을 이동시킨 x, y 좌표에 따라 view1을 다시 그리거나 2를 볼 필요가 있습니다. http://developer.android.com/reference/android/graphics/Canvas.html

당신은 아마 보드에 사각형을 그릴하기 위해 drawRect을 위해 그것을 사용할 수 있습니다, 당신은 등 루크와 기사,

을 그릴 drawBitmap을 사용 :

는 여기 하지만 view2에 캔버스로 view2를 그리는 방법

실제로 실제로 view2가 필요하지 않습니다. 하나의보기를 사용하여 체스 판을 그린 다음 동일한 비트 맵에서 각 체스 조각을 그립니다.

그러나 같은 캔버스 의지에 플레이어를 이동은 다른 날이 가능한 두 개 이상의 캔버스를 가질 수 서로

에 두 개의 캔버스를 그릴하시기 바랍니다 canvas.Tell 작성하지 않는 경우 너무 정신이되었다 두 개 이상의보기가 있다고 가정합니다. 그래서 저는 여러분이 view1이 보드를 그릴 수 있다고 가정하고, 그 다음에 view2가 조각이 될 것이라고 생각합니다. 그러나 그것은 정말로 필요하지 않습니다. pawn1이 x1, y1이고 user2가 x2, y2로 이동 한 다음 x1, y1 (보드에있는 위치에 따라 검정색 또는 흰색)에 새 사각형을 그린 다음 x2에서 다시 그립니다 , y2.

View2에서 그렇게 할 수는 있지만 두 번째보기를 구현하는 방법을 100 % 확신 할 수는 없습니다. 이전 비트 맵을 재활용하는 대신 새로운 비트 맵으로 이동할 때마다 모든 조각을 다시 그려야합니다.

사각형을 다시 그려 넣은 다음 x2, y2에서 조각을 다시 그립니다.

+0

하지만 뷰 2에서 캔버스로 뷰 1을 그리는 방법 – Sameer

+0

다른 캔버스를 만들지 않으면 같은 캔버스에서 플레이어를 이동하는 것이 바쁠 것입니다. 두 캔버스를 서로 그릴 수있게하십시오. – Sameer

+0

** 해결 된 내 셀 * * 나는 다른 방법을 사용했다. 그러나 친절한 정보를 위해서 나는 표면보기를 사용하여 뷰의 스택을 생성 할 수 없다는 점을 공유하고 싶다. 하지만 빠른 응답을 위해 Jakar에게 감사드립니다. – Sameer