2012-05-17 5 views
1

나는 안드로이드 프로그래밍의 절대 초보자이므로 나와 함께하시기 바랍니다 :) 내 간단한 게임은 20 x 10 격자를 처음. 게임 내에서 일부 정사각형의 중심에 스프라이트를 그릴 필요가 있습니다. (Checkers 그리드와 유사하며 각 사각형의 중앙에 칩이 있음). 이 게임이 다양한 화면 크기와 밀도에서 작동하기를 바랍니다. 내 접근 방식은 게임의 시작 부분에서 캔버스 너비와 높이를 얻고 사각형의 측면을 계산 한 다음 그리드를 그려 비트 맵으로 저장 한 다음 게임에서 해당 비트 맵을 사용하는 것이 었습니다. 그렇게하면 그리드가 스크린 전체에서 완벽하게 확장됩니다.Android : 왜곡없이 비례하여 사각형 격자 만들기

1) 더 좋은 방법이 있습니까? 대신 격자의 이미지를 비트 맵으로 사용할 수 있습니까? 거기에 내 관심사는 이미지가 다른 화면에 맞게 조정되면 정사각형이 직사각형으로 왜곡 될 수 있다는 것입니다. 게다가 각 스케일 된 사각형의 중심이 (스프라이트를 배치하기 위해) 어디에서 계산되는지 계산하기가 어렵습니다.

2) 또한 화면의 어떤 위치에 제목, 점수, 레벨 등을 표시해야합니다. 비트 맵에 공간을두고 비트 맵에 점수를 쓰거나 그리드 용 SurfaceView와 스코어, 레벨 등을 쓰는 또 다른 뷰를 사용하여 레이아웃을 만드는 것이 더 좋은가?

감사합니다.

+1

가능한 경우 비트 맵을 피하십시오. 특히 그리드 용으로 사용하십시오. XML 드로어 블 사용 –

답변

1

Nine-Patch .png 이미지를 사용하고 먼저 하나의 사각형을 나타내는 이미지를 만들거나 20x10 크기를 나타내는 이미지를 만듭니다. 이렇게하면 mdpi (중간 인치당 도트 수) 화면에서 올바르게 보입니다.

그런 다음 지원하려는 다른 화면 밀도에 맞게 사전 크기 조정 된 이미지를 만들어야합니다. ldpi는 원본의 0.75, hdpi는 원래 크기의 1.5x, xhdpi는 원래의 2 배입니다.

그런 다음 프로젝트의 관련 드로어 블 리소스 디렉토리 (예 :/res/drawable-mdpi 및/res/drawable-hdpi)에 이미지를 넣습니다.

각 밀도에 정확히 같은 이름의 이미지를 지정합니다 (예 : square.png 또는 grid.png). 그 드로어 블 디렉토리가 같은 이름의 이미지를 포함하고있는 한, 안드로이드는 올바른 밀도를 위해 올바른 것을 찾고 그것을 사용합니다.

그것은 문서의 긴 비트입니다하지만 당신은 정말 읽을 필요가

...

Supporting Multiple Screens

... 대체 드로어 블 특히 일부입니다.

+0

당신이 지원하는 많은 해상도를 지원합니다. 그러나 임의의 결의안을지지하지 않을 것입니다. 9png 또는 XML 드로어 블을 사용하십시오. – Falmarri

+0

고마워, 나는 그 페이지를 더 일찍 훑어 보았지만 의심의 여지가있다. "큰 화면은 적어도 ** ** 640dp x 480dp 이상"이라고한다. 640dp x 480dp 크기의 비트 맵을 만들고 xlarge Mayank

+0

@Falmarri : 실제로 나는 대답을 나쁘게 말했습니다. '비트 맵'을 사용하는 대신 '이미지'를 일반 용어로 사용해야했습니다. Nine-Patch 파일은 확장을 허용하는 가장 좋은 방법입니다. – Squonk

관련 문제