2013-02-28 1 views
3

안녕하세요 저는 캔버스에 정사각형 8x8 격자를 만들려고합니다. 저는 그리드를 만들었지 만 직사각형으로 판명되었지만, 게임을 위해서는 사각형이되어야합니다. 코드를 변경하여 전화에 맞게 정사각형 격자로 만들 수 있습니까?정사각형 격자를 모든 휴대 전화 크기로 축척하는 방법

float testWidth = (getWidth() - 16f)/9f; 
float testHeight = (getHeight() - 16f)/9f; 
for (int i = 0; i < 9; i++) { 
      canvas.drawLine(padding + testWidth* i, padding, padding 
        + testWidth * i, testHeight* 8+padding, dark); 
      canvas.drawLine(padding, padding+testHeight* i, testWidth* 8 
        + padding, padding+testHeight* i, dark); 
     } 

편집 : 나는 지금 사각형 격자를 만들 수 있습니다,하지만 난 휴대 전화의 중앙으로 그리드를 중심으로하는 방법을 모른다

답변

4

당신은 (두의 짧은을 할 수 있습니다 너비 또는 높이)를 사용하여 그리드를 작성하십시오. (그래서 그리드 화면에 들어갈 수)

뭔가 같은 ... :

float gridSide = 0; 
if (getWidth() > getHeight()) { 
    gridSide = getHeight(); 
} 
else { 
    gridSide = getWidth(); 
} 
appsroxcom에 의해 제공

간단한 논리 :

float gridSide = Math.min(testWidth(), testHeight()); 

를 사용하여 총 길이 gridSide 그리드의 전체 너비

+0

간단한 로직 : float cellSize = Math.min (testWidth, testHeight); – appsroxcom

+0

아, 물론! 고맙습니다. 한 가지 더 묻습니다. 이것은 그리드가 캔버스의 3/4을 차지하고 바닥 1/4은 완전히 비어 있음을 의미합니다. 어떻게 그리드를 캔버스의 중심에 배치 할 수 있습니까? – user1953208

+0

ABS (높이 - 너비)/2로 뷰 간격 띄우기 –