3.3 컨트롤 기반 뷰의 사용자 정의 그리기

1883 단어
뷰가 측정되면 온드라 () 방법을 간단하게 다시 쓰고 Canvas 대상에 필요한 도형을 그릴 수 있습니다.먼저 시스템 2D 드로잉 API를 사용하는 데 필요한 Canvas 객체에 대해 살펴보겠습니다.
안드로이드 인터페이스에서 해당 이미지를 그리려면 Canvas에서 그려야 합니다.Canvas는 마치 하나의 화판과 같아서 Paint를 사용하면 그 위에 그림을 그릴 수 있다.보통 뷰를 계승하고 원드로우 () 방법을 다시 써서 그림을 완성해야 한다. (이 사고방식은 뒤에 자주 사용된다.)
그럼 Canvas란 무엇일까요?일반적으로 View 클래스의 onDraw () 를 다시 쓰는 방법으로 그림을 그릴 수 있습니다. onDraw () 에는 Canvas canvas 대상이 있습니다.이 Canvas 객체를 사용하면 드로잉을 그릴 수 있지만 다른 곳에서는 코드를 사용하여 다음과 같은 Canvas 객체를 만들어야 합니다.
Canvas canvas = new Canvas(bitmap);

4
  • Canvas 대상을 만들 때 왜bitmap 대상을 전송합니까?비트맵 대상에 전송되지 않으면 IDE 컴파일링은 틀리지 않지만, 일반적으로 우리는 이렇게 하지 않습니다

  • 4
  • 이것은 전송된bitmap과 이bitmap을 통해 만든Canvas 캔버스가 서로 밀접하게 연결되어 있기 때문에 이 과정을 우리는 마운트 캔버스라고 부른다

  • 4
  • 이bitmap은Canvas에 그려진 모든 픽셀 정보를 저장하는 데 사용됩니다

  • 4
  • 그래서 이런 방식으로 Canvas 대상을 만든 후에 모든 Canvas를 호출합니다.drawXXX 방법은 모두 이bitmap에서 발생합니다

  • 4
  • View 클래스의 onDraw () 방법에서 아래의 코드를 통해 canvas와bitmap의 직접적인 관계를 알 수 있다.먼저 onDraw 방법에서 두 개의bitmap을 그립니다. 코드는 다음과 같습니다
  • canvas.drawBiimap(bitmap1, 0, 0, null);
    canvas.drawBitmap(bitmap2, 0, 0, null);
    

    bitmap2의 경우 다음 코드와 같이 다른 Canvas 객체에 로드합니다.
    Canvas mCanvas=new Canvas(bitmap2);
    

    다른 곳에서 Canvas 대상의 그리기 방법을 사용하여bitmap2를 불러온 Canvas 대상에 그림을 그립니다. 코드는 다음과 같습니다.
    mCanvas.drawXXX
    

    4
  • mCanvas를 통해 그리는 효과를bitmap2에 작용하고 View를 리셋할 때 onDraw() 방법으로 그리는bitmap2가 이미 변화한 것을 발견할 수 있다. 이것은bitmap2가 mCanvas에서 하는 그리기 조작을 탑재했기 때문이다

  • 4
  • 우리도Canvas의 그리기 API를 사용했지만 사실 도형을 onDraw () 방법으로 지정한 화포에 직접 그리지 않았고bitmap을 바꾸고View를 다시 그려서 바뀐bitmap을 나타냈다.이 과정은 초보자에게는 이해하기 어려울 수도 있지만 매우 중요하기 때문에 후속으로 그림 그리기 기교를 깊이 있게 배우고 향상시키는 데 도움이 된다.Canvas 객체를 이해한 후에는 Canvas에서 제공하는 드로잉 방법을 호출하여 원하는 그래픽을 그릴 수 있습니다.아무리 복잡하고 정교한 컨트롤러라도 하나의 작은 도형 단원으로 나눌 수 있다. 우리가 해야 할 일은 바로 이런 작은 도형 단원을 찾아서 그것을 그리는 것이다

  • Blankj에서 참조

    좋은 웹페이지 즐겨찾기