2012-07-24 5 views
0

안드로이드 캔버스 그리기 명령 사용 :안드로이드, 선폭, 픽셀 크기

스트로크 = 0 또는 스트로크 = 1로 설정하고 수평선을 그리면 라인 픽셀은 2 픽셀 높습니다. 획 = 2로 설정하면 픽셀의 높이가 2 픽셀이지만 밝아집니다.

단일 픽셀을 그리면 픽셀은 stroke = 0 또는 stroke = 1 인 경우 2x2 행렬입니다. stroke = 2 인 경우 2x2 행렬을 얻지 만 밝은 픽셀을 사용합니다.

한 픽셀 높이의 선을 얻으려면 어떻게해야합니까? 유일한 픽셀 인 픽셀을 얻으려면 어떻게해야합니까?

참고 : 사용중인 장치의 화면 크기는 480 x 800 이상입니다. 나는이 문제에 대해 로마 사람 @Google와 통신

thePaint.setStyle(Paint.Style.STROKE); 
+0

문서에 따라 strokeWidth 0은 1 픽셀이어야합니다. Paint 객체를 만드는 방법과 Canvas에 어떻게 그리는 지 보여주는 몇 가지 코드를 제공 할 수 있습니까? –

+0

코드가 추가되었습니다. 예, 설명서에서 말하는 것입니다. 그것은 현실이 아닙니다. – Xarph

답변

2

:이 대신에 라인

thePaint.setStyle(Paint.Style.FILL); 

를 교체해야처럼

Paint thePaint = new Paint();     
thePaint.setARGB(a, r, g, b);       
thePaint.setAntiAlias(true); 
thePaint.setStyle(Paint.Style.FILL); 
thePaint.setStrokeWidth(0); 
canvas.drawLine(x1,y1,x2,y2, thePaint); 
+0

당신은 당신 자신의 정답을 받아 들일 수 있습니다. –

0

는 것 같습니다. 그는 AntiAlias가 설정 스트로크 = 0 이외에 해제해야한다고 말했다. 내 테스트는 그가 옳다는 것을 보여 주었다. Google 문서는 현재이 요구 사항을 반영하지 않습니다. 이 코드는 작동합니다.

+0

나는 그것을 시도했다. 아무런 차이가 없습니다. – Xarph

+0

귀하의 x1, y1, x2, y2 값은 모두 정수 값입니까? 분수 값을 가질 때 재미있는 앨리어싱을 얻을 수 있습니다. –

관련 문제