2014-09-18 2 views
0

나는 안드로이드에 캔버스를 사용하여 간단한 사각형을 그리려고합니다. 캔버스가 전체 화면으로 퍼집니다. 내 코드는사각형 그리기 - Android

-

canvas.drawRect(200, 200, 700, 700, paint); 

(그것은 하드 testings를 코딩거야)

하지만 결과는 (높이가 폭보다 더 큰 것 같다) 모두에서 사각형처럼 보이지 않는다.

내 논리가 잘못 되었나요?

다음은 결과의 스크린 샷입니다.

enter image description here

감사합니다!

+0

사각형은 바로 검정 상자입니까? 전체 이미지가 아닌가요? – vedi0boy

+0

canvas.drawRect (50, 50, 200, 200, 페인트)로 시도하십시오. 테스트 및 아이디어 목적으로 원하는 결과를 얻고 있는지보십시오 –

+0

그래, 사각형은 블랙 박스입니다. @ Rajen - 나는 당신의 가치를 가지고 시험해 봤지만 여전히 사각처럼 보이지 않습니다. – Tofira

답변

2

수평 및 수직 방향이 다른 dpi 장치를 사용하고 있습니까? 그렇다면이 차이를 완벽한 사각형으로 고려해야합니다.

DisplayMetrics (http://developer.android.com/reference/android/util/DisplayMetrics.html) 필드 "xdpi"및 "ydpi"를 사용하여 양방향의 dpi를 얻을 수 있습니다. 그런 다음 너비 "X"와 높이 ("X"* (ydpi/xdpi))를 사용하여 완벽한 사각형을 만들 수 있어야합니다. 예

: 가로 200dpi 이상 (xdpi)와 100DPI 수직 (ydpi)는 사각형을 100 픽셀 폭을 그릴 필요와 함께 각면에 100 픽셀로 정방형 (100 * (100/200)) = 50px 높이.