캔버스와 드로어블 번역 에피소드 1

黄舟
풀어 주다: 2017-01-16 16:38:14
원래의
1472명이 탐색했습니다.

Android 공식 원문 주소: http://developer.android.com/guide/topics/graphics/2d-graphics.html

------다음 번역에는 내 생각이 반영되어 있습니다. 이해하기 쉬운 곳이 많아 번역이 별로 적절하지 않아서 영문 원문

Canvas and Drawables 화판 및 그림(그림은 신축성 있는 그림입니다)

본 문서에 있습니다.

캔버스로 그리기

뷰에서
SurfaceView에서

드로어블

리소스에서 생성
이미지
에서 생성 리소스
XML

Shape Drawable
Nine-patch

다음 항목도 참조

Framework API가 포함된 OpenGL
RenderScript

Android 프레임워크 API는 사용자 정의 그래픽을 캔버스에 렌더링하거나 기존 뷰를 수정하여 모양과 느낌을 사용자 정의할 수 있는 2D 드로잉 API 세트를 제공합니다.
일반적으로 한 번에 수행합니다.
Android 프레임워크 API는 일련의 2D 드로잉 API를 제공하여 자신만의 맞춤 그래픽(그래픽)을 아트보드(캔버스)에 렌더링하거나 기존 보기(보기)를 수정하여 맞춤 설정할 수 있습니다. 그리고 경험. 2D 그래픽을 그릴 때 일반적으로 두 가지 방법이 있습니다.

레이아웃에서 그래픽이나 애니메이션을 View 객체로 그립니다. 이러한 방식으로 그래픽 그리기는 시스템의 일반 뷰 계층 그리기 프로세스에 의해 처리됩니다.
뷰 내부에 들어갈 그래픽을 정의하기만 하면 됩니다.
레이아웃 파일(레이아웃)을 통해 그래픽(그래픽) 또는 애니메이션을 뷰(뷰) 개체에 그립니다. 이렇게 하면 그래픽 그리기가 시스템의 일반 뷰 수준 그리기 프로세스에 의해 처리됩니다. 즉, 뷰에 그래픽을 정의하기만 하면 됩니다. 이 메서드는 아마도 xml에 정의된 배경 이미지나 ImageView의 src 속성을 참조할 것입니다.
그래픽을 캔버스에 직접 그리면 해당 클래스의

onDraw()
로그인 후 복사

메서드
(캔버스 전달) 또는 캔버스

draw...()
로그인 후 복사

중 하나를 개인적으로 호출할 수 있습니다. ).이렇게 하면 모든 애니메이션도 제어할 수 있습니다.
그래픽(Graphics)을 작업판(Canvas)에 직접 그립니다. 이 메서드에서는 해당 메서드의 onDraw() 메서드를 직접 호출해야 합니다. 클래스(Canvas에 전달) 또는 Canvas draw...() 메서드 중 하나(예: drawPicture()). 이렇게 하면 모든 애니메이션을 제어할 수도 있습니다.

뷰에 그리는 옵션 "a"는 동적으로 변경할 필요가 없고 성능 집약적인 게임의 일부가 아닌 간단한 그래픽을 그리려는 경우 최선의 선택입니다. 정적인 애플리케이션 내에서 정적 그래픽이나 사전 정의된 애니메이션을 표시하려는 경우
뷰에 그래픽을 그립니다. 자세한 내용은
Drawables를 참조하세요.
간단한 그래픽을 그리는 경우 옵션 a (그래픽), 이 그래픽은 동적으로 변경될 필요가 없거나 성능이 향상된 게임의 일부가 아닙니다. 이때 그래픽을 뷰(View)로 그리는 것이 최선의 선택입니다. 예를 들어 정적 그래픽이나 미리 정의된 애니메이션을 표시하려면 그래픽을 뷰에 그려야 합니다.
캔버스에 그리는 옵션 "b"는 애플리케이션이 정기적으로 자체적으로 다시 그려야 할 때 더 좋습니다. 그러나 비디오 게임과 같은 애플리케이션은 자체적으로 캔버스에 그려야 합니다.
이렇게 하려면:
옵션 b, 애플리케이션이 제 시간에 자체를 다시 그려야 하는 경우 캔버스에 그리는 것이 더 나은 선택입니다. 예를 들어 비디오 게임 애플리케이션을 아트보드에 그려야 합니다. 어쨌든 이를 수행하는 방법에는 여러 가지가 있습니다.

레이아웃에 사용자 정의 View 구성 요소를 생성하는 UI 활동과 동일한 스레드에서

invalidate()
로그인 후 복사
로그인 후 복사

를 호출한 다음

onDraw()
로그인 후 복사

콜백을 처리합니다.
UI 활동과 동일한 스레드에서 레이아웃을 사용하여 사용자 정의 보기 구성 요소를 생성하고 무효화() 메서드를 호출한 다음 onDraw() 콜백을 처리합니다.
또는 별도의 스레드에서

SurfaceView
로그인 후 복사

를 관리하고
스레드가 가능한 한 빨리 캔버스에 그리기를 수행합니다(요청할 필요가 없습니다

invalidate()
로그인 후 복사
로그인 후 복사
) 또는 별도의 스레드에서 SurfaceView를 관리하고 가능한 한 빨리 캔버스에 그래픽을 그립니다(Invalidate()

를 요청할 필요가 없습니다).

위 내용은 Canvas 및 Drawables 번역 1화 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿