2011-09-29 6 views
14

버튼 (왼쪽, 가운데, 오른쪽)의 배경을 구성하는 3 개의 9 패치 PNG가 있습니다.여러 이미지로 드로어 블을 만드는 방법은 무엇입니까?

res/drawable/button_background.xml:

<?xml version="1.0" encoding="utf-8"?> 
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android" 
android:src="@drawable/button_left_side" /> 

<nine-patch android:src="@drawable/button_middle" /> 

<nine-patch android:src="@drawable/button_right_side" /> 

res/layout/main.xml:

<button android:background="@drawable/button_background" /> 
: 나는의 라인을 따라 XML의 버튼 배경, 무언가로 지정할 수 있습니다 당김에이 세 가지 이미지를 함께 결합하고 싶습니다

이것이 가능합니까?

답변

33

일부 시행 착오 끝에 나는 만족스러운 방법으로 문제를 해결할 수있었습니다. 26px 값은 픽셀의 두 개의 버튼 측면 이미지의 너비

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/btn_left" android:left="0px" /> 
    <item android:drawable="@drawable/btn_middle" 
     android:left="26px" android:right="26px" /> 
    <item android:drawable="@drawable/btn_right" android:right="0px" /> 
</layer-list> 

다음과 같이 단순히 계층리스트 그리기를 구현 하였다.

이 드로어 블을 사용하려면 다른 당김과 같이 호출 :

<bitmap android:src="@drawable/button_background" /> 

이것은 당신이 중간 원하는 폭에 맞게 정상적으로 확장과 함께, 그것을 기대하고, 모든 세 개의 이미지를 얼마나 정확하게 작동 원하는 높이에 맞게 확장합니다. 나는 다른 사람들이 이로움을 얻을 수 있기를 희망합니다!

+3

"px"대신 "dp"를 사용하면 더 좋은 결과를 얻을 수 있습니다. px를 사용하면 고밀도 장치의 왼쪽 및 오른쪽 버튼이 매우 작아집니다. – seema

관련 문제