이 레이아웃 XML은 버튼에 그릴 수 있는 상태 목록을 적용합니다: NinePatch는 뷰 내의 콘텐츠가 일반 이미지 경계를 초과할 때 Android에서 스케일링할 수 있는 신축성 있는 영역을 정의할 수 있는 PNG 이미지입니다. 일반적으로 이러한 유형의 이미지를 “wrap_content”로 설정한 차원이 하나 이상 있는 뷰의 배경으로 할당하고, 뷰가 콘텐츠를 수용하도록 증가하면 9패치 이미지도 뷰 크기에 맞게 배율이 조정됩니다. 나인 패치 이미지의 예는 버튼 내부의 텍스트 (또는 이미지)를 수용하기 위해 스트레칭해야 안드로이드의 표준 버튼 위젯에 의해 사용되는 배경입니다. Android를 사용하면 비트맵 작업을 위해 비트맵 클래스를 사용할 수 있습니다. 이 섹션에서는 Java 코드를 통해 Bitmap 개체를 만드는 방법과 비트맵을 그리기 가능한 개체로 변환하는 방법과 그 반대의 경우도 마찬가지입니다. 그리기 가능한 리소스는 그릴 수 있는 그래픽에 대한 일반적인 개념입니다. 가장 간단한 경우는 비트맵그리기 가능한 클래스를 통해 Android에서 표시되는 그래픽 파일(비트맵)입니다. Android에서 셰이프 그리기 는 xml에서 정의할 수 있으며, java 코드 및 xml의 리소스로 사용하여 뷰의 배경, 아이콘 등과 같은 이미지 관련 속성을 설정할 수 있습니다. xml에서 사각형, 타원형, 링 및 선 모양 그리기를 정의할 수 있습니다. 뷰 주위의 링을 조정하려면 그리기 가능한 링 모양의 정의에 패딩을 설정해야 합니다. 모양의 단색 또는 그라데이션 요소를 사용하여 링 색상을 설정할 수 있습니다. 예를 들어, 응용 프로그램 / res / 그리기 / my_layer_list.xml은 단지 파일인 경우. 그런 다음 자바 코드 또는 다른 XML 파일에서 참조 할 수 있습니다.

그리기 가능한 링 셰이프를 만들려면 모양 요소의 모양, 내부반경원 및 thichkness 속성을 설정해야 합니다. 화면 아래는 버튼의 배경 속성을 그릴 수 있는 링 모양으로 설정하여 만들 수 있는 둥근 단추를 보여 주며 있습니다. 이 예제에서는 중첩된 요소를 사용하여 “중심” 중력으로 각 항목에 대한 그리기 가능한 리소스를 정의합니다. 이렇게 하면 오프셋 이미지로 인한 크기 조정으로 인해 컨테이너 크기에 맞게 이미지의 배율이 조정되지 않습니다. 이름에서 알 수 있듯이 벡터 그리기 는 래스터 그래픽과 달리 벡터 그래픽을 기반으로 합니다. 벡터 그래픽은 기하학적 모양을 사용하여 그래픽 요소를 설명하는 방법입니다. SVG 파일과 유사합니다. 안드로이드 벡터 그리기에서 XML 파일로 만들어집니다. Android SDK에서 벡터 그리기 가 추가되기 전에 개발자는 다양한 디스플레이 해상도에 대해 여러 버전의 이미지를 만들어야했습니다. 이렇게 하면 추가 자산을 만들고 APK 크기를 늘리는 더 많은 공간을 사용하는 데 더 많은 시간이 소요됩니다.

이제 mdpi, hdpi, xhdpi 등에 대해 다른 크기의 이미지를 디자인 할 필요가 없습니다. 벡터 그리기를 사용하면 xml 파일로 한 번만 이미지를 만들어야하며 모든 dpi 및 다른 장치에 대해 크기를 조정할 수 있습니다. 또한 공간을 절약할 수 있는 공간이 아니라 유지 보수를 단순화합니다. 모든 그리기 는 res / 그리기 폴더 중 하나에 개별 파일로 저장됩니다. 일반적으로 -mdpi, -hdpi, -xhdpi, -xxhdpi res/drawable의 하위 폴더에 다른 해상도에 대한 비트맵을 저장합니다. ADT 프로젝트 만들기 마법사는 기본적으로 이러한 폴더를 만듭니다. 이러한 비트맵이 다른 폴더에 제공되면 Android 시스템은 장치 구성에 따라 자동으로 올바른 비트맵을 선택합니다. Android 시스템은 선택기의 각 항목을 목록 순서로 확인한 다음 한 항목이 현재 단추 상태와 일치하는 경우 해당 그리기 가능한 개체를 사용합니다.

상태가 일치하지 않으면 기본 항목을 사용합니다. ADT는 안드로이드 SDK / 도구 설치 폴더에 draw9patch 프로그램을 제공하므로 9 개의 패치 그리기를 쉽게 만들 수 있습니다. Android.graphics.drawable 패키지의 다른 많은 그리기 가능한 형식과 마찬가지로 ShapeDrawable 클래스를 사용하면 공용 메서드를 사용하여 개체의 다양한 속성을 정의할 수 있습니다.