안드로이드 캔버스 예제

제 이름은 조슈아 램슨입니다. 캔버스로 사용자 지정 드로잉을 좋아합니다. 캔버스 개체는 기본적으로 onDraw 메서드 내부의 매개 변수로 제공됩니다. AndroidCanvasExample.class에 대해 매우 간단한 레이아웃 xml을 만들려고 하는데, 이는 아래 줄에서 만들 사용자 지정 클래스의 구성 요소인 사용자 지정 CanvasView를 포함하는 FrameLayout로만 구성됩니다. 캔버스를 지우고 무효화하고 비우는 « 지우기 단추 »를 추가하려고 하기 때문에 외부 레이아웃에 대한 FrameLayout을 선택했습니다. 이 프레임 레이아웃은 캔버스 위에 단추를 추가하는 데 도움이 되었습니다. 이제 좀 더 번역해 보겠습니다. 왼쪽과 오른쪽으로 이동하지 는 않을 것이고, 왼쪽 정렬이 이 두 텍스트 사이에 동일할 것이라는 것을 알고 있습니다. 우리는 그것을 아래로 이동하려고합니다.

우리는 페인트에서 텍스트 크기를 취할 거야. 그것은 같은 높이가 될 것입니다. 이것은 텍스트 경계를 가져 와서 그 정류에 넣고 그 높이를 사용하는 것과 같은 일을 합니다. 그런 다음 간격을 추가합니다. 캔버스를 미리 보기 레이아웃에 지정할 수 있으며 캔버스자체를 그릴 수 있습니다. 에 의해 게시: 캔버스 11 월 13 일에 Chryssa Aliferi, 2014 년 6 댓글 보기 데이브 스미스의 안드로이드 터치 시스템 마스터에 대한 이야기, 그것은 당신이 보기 및 보기 그룹을 가지고 일단 복잡해진다. 측정, 레이아웃, 그리기, Huyen 화 Dao에 의해 반복은 또한 더 큰 레이아웃 구조에 대해 이야기; 캔버스에서 일부 뷰를 재정의하고 그리는 대신 다른 항목과 비교하여 화면상의 위치 와 같은 뷰를 배치하는 방식으로 강력한 작업을 수행할 수도 있습니다. Canvas 클래스에는 선, 호, 원, 위에 와 같이 특정 모양을 그리는 메서드가 포함되어 있습니다. 또한 패스를 사용하여 복잡한 형상을 그릴 수 있습니다. 다음으로 레이아웃을 그리는 방법을 처리해야 합니다. 개별 셰이프(예: 이전에 다룬 선과 사각형 및 원)를 그릴 때 캔버스에서 그려야 하는 위치에 대한 좌표를 지정할 수 있습니다.

그리기 를 위해 우리는 같은 일을 수행 할 수있는 경계를 제공, 텍스트 레이아웃은이 메커니즘이 없습니다. 레이아웃을 본질적으로 말할 수 있는 방법이 없습니다. 캔버스에 그릴 수 있는 위치를 제공하는 대신 캔버스 자체를 변경하려고 합니다. 프로젝트를 빌드, 컴파일 및 실행할 때 주요 AndroidCanvasExample는 다음과 같이 표시됩니다. 이전에는 동일한 생성기를 사용할 수 있지만 Android M 이상(6.0)으로 수행할 수 있는 새로운 방법입니다. 이제 좋은 빌더 패턴이 있습니다. 이전 버전의 정적 레이아웃에서는 타원 크기 옵션이 작동하지 않습니다. 이 모든 예제 프로젝트에 대한 링크를 아래에서 찾아 본 선 에서 Android M 전에 여러 줄에 대한 타원처리를 처리하는 방법에 대한 몇 가지 코드와 몇 가지 예제가 있습니다.

우리가 관심있는 모든 것을 설정한 후, 우리는 가서 우리의 정적 레이아웃을 구축하고 그것을 설정합니다. 이제 우리는 그림을 그리는 데 필요한 모든 것을 가지고 있습니다. 그리기 가능한 클래스를 재정의하려면 정의해야 할 몇 가지 메서드가 있습니다. setBounds() 재정의할 필요는 없지만 캔버스의 큰 정도를 파악하는 데 유용합니다. 뷰에서 getWidth()와 getHeight()를 대체합니다. 그 또는 onBoundsChange()를 재정의하여 그리기 가능 여부와 다른 캔버스에서 그려지는 위치에 액세스할 수 있습니다. 이것은 안드로이드 안드로이드 캔버스의 예입니다. 우리는 우리의 캔버스가 있습니다.

우리는 우리의 페인트가 있습니다. 우리는 어떻게 주위를 탐색합니까? 예를 들어 캔버스는 선을 그리는 방법을 제공하며 페인트는 해당 선의 색상을 정의하는 메서드를 제공합니다. 캔버스에는 사각형을 그리는 메서드가 있으며 페인트는 해당 사각형을 색상으로 채우거나 비워 둘지 여부를 정의합니다. 간단히 말해 캔버스는 화면에 그릴 수 있는 셰이프를 정의하고 페인트는 그리는 각 셰이프의 색상, 스타일, 글꼴 등을 정의합니다.