2012-07-31 4 views
1

Canvas를 사용하여 Bitmap에 그려 있습니다.캔버스 드로잉을 감싸는 내장 안드로이드 함수가 있습니까?

........ 
......x. 
........ 
........ 
........ 

내가이 상자 그리면 :

의이 내 비트 맵 가정 해 봅시다은 (: D 점은 단지 빈 공간이며, x는 자리 표시)에서 시작

### 
### 
### 

을 'X' ,이를 얻을 것 :

........ 
......##(#) 
......##(#) 
......##(#) 
........ 

하지만이 비트 맵이 포장 된 것처럼 그 "새는"#의 년대가 가장 왼쪽에 그려진되고 싶어요. 팩맨처럼.

기본적으로 캔버스가 (x, y)에 픽셀을 그리지 않도록 지시하는 방법은 x % width, y % height입니다. 이것을 달성하는 간단한 방법? 감사! 당신이 사용할 수 없습니다

##.....# 
##.....# 
........ 
........ 
##.....# 

답변

0

나는 문서에서 알 수 있듯이 찾고있는 것을 성취 할 수있는 내장 기능이 없다. 캔버스 객체를 직접 다루기 때문에 응용 프로그램이 모든 픽셀 레벨 도면 정보를 처리한다는 가정이 있습니다.

귀하가 언급 한 것처럼 앱에서 한 가지 이상의 방법이 있지만 불행히도 상자 밖으로 나오지 않습니다.

0

: (1 - - 1, 높이 폭), 나는 이것을 싶지

또 다른 예를 들어,이 전부터 같은 3 × 3 상자/사각형을 그립니다하고 싶은 말은하자

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

x=metrics.heightPixels; 
y=metrics.widthPixels; 

그리고

u=bitmap.getWidth(); 
    v=bitmap.getHeight(); 

당신은 상자가 그려 져야 이러한 네 개의 숫자에서 쉽게 알아낼 수 있습니다.

수정에 대한 답변 : 사각형의 일부가 xx로 화면 오른쪽에서 벗어난 경우 xx 위치의 화면에 그립니다. xx가 왼쪽에서 벗어난 경우 screenWidth-xx 위치에 그립니다.

화면이 '움직이는'경우, 즉 화면을 스크롤 할 수있는 경우 조금 더해야합니다.

+0

사실 내 상자가 비트 맵을 감싸고 싶다. 제대로 배치 할 수 없다. –

+0

상자를 그립니다. 그것은 비트 맵입니까, 아니면 직사각형을 그립니다? 어느 쪽이든 비트 맵의 ​​좌표와 치수를 사용하여 상자의 위치를 ​​계산하십시오. –

+0

직사각형입니다. 것은, 그것이 어디로 가야 하는지를 안다. 그리고 그것은 나눠 져야한다. 내가 궁금해하는 것은 : 나를 위해 분할 작업을 수행 할 내장 함수가 있는지 여부입니다. 나는 잠시 후에 나의 질문에 또 다른 모범을 추가 할 것이다. –

0

동일한 이미지를 마무리 할 수 ​​있다고 생각하지 않습니다. 당신이 할 수있는 것은 오른쪽에있는 하나가 화면에서 사라지면 왼쪽에 두 번째 이미지를 삽입하는 것입니다.

예를 들어, 이미지를 4x4 단위로 보자. 화면 (오른쪽)에서 1 단위 씩 나오면 3x4가 오른쪽에 표시되고 1x4 (새 이미지)가 왼쪽에 표시됩니다. 위와 아래로 일할 수있는 것과 같은 방식입니다.

관련 문제