2017-01-18 12 views
0

다른 디자인의 프로젝트에서 몇 개의 버튼을 사용해야합니다. 그래서 드로잉 모양을 사용하여 커스텀 버튼을 만들고 있습니다.android 드로잉 가능한 모양을 사용하는 효율적이고 구조화 된 방법은 무엇입니까?

둥근 모서리와 녹색 배경이있는 버튼이 필요한 경우를 가정 해 보겠습니다. 그래서 모양을 만들었습니다 "gree_round_button.xml"그리고이 잘 작동합니다. 그런 다음 다시 동일한 스타일의 다른 버튼이 필요합니다. 배경색이 다르면 "colorName_round_button.xml"과 같은 다른 XML 파일을 만들어야합니다.

나는 이해하기 쉽도록 유지하고 있지만, 다른 버튼에 대한 많은 공통된 스타일이있을 수 있습니다. 하나 또는 두 개의 다른 속성 일 수 있습니다. 동일한 디자인을 위해 여러 파일을 만드는 것을 건너 뛸 수있는 방법이 있습니까? 어떤 모양을 확장하는 데 사용할 수있는 어떤 방법이 있으며 매개 변수로 색상, 배경색을 전달할 수 있습니까? 이 "button.xml"처럼이 모양은 색상에 대해 하나의 매개 변수를 허용하므로 사용하려는 모든 버튼에이 모양을 사용할 수 있으며 다른 색상을 매개 변수로 전달할 수 있습니다. 웹 CSS에서

: 나는 이런 식으로 뭔가를 할 수있는 쉬운 방법이 있나요이

.button {border: 1px solid #ddd;border-radius:5px;padding:20px;} 
.button.green {background:green;} 

과 같은 작업을 수행 할 수 있습니다. 감사합니다. .

+0

당신은'View'을 확장하고 원하는 색상 매개 변수를 전달할 수 있습니다. –

+0

확실히 확인해 보겠습니다. 감사합니다. –

답변

2

backgroundTint 이것을 사용하면 동일한 드로어 블을 사용할 수 있지만 다른 색상으로 오버레이 할 수 있습니다.

예를 들어, bg_circle.xml은 흰색 원을 가질 수 있습니다. 색조를 사용하여 색상을 변경하고 별도의 아이콘을 src로 사용하십시오.

<ImageButton 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:src="@drawable/ic_check_mark" 
    android:background="@drawable/bg_circle" 
    android:backgroundTint="@color/red" 
    /> 

당신은 단지 당신이 모든 버튼에 배경으로 사용할 수있는 하나의 round_button.xml 있고, 필요에 따라 다른 색상으로 착색 할 필요가 이쪽으로. 각 아이콘의 내용은 자체 drawable이 될 수 있습니다. 아래에만 3 드로어 블로 만들어진

네 개의 버튼 :

enter image description here

<ImageButton 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:src="@drawable/ic_feather" 
    android:background="@android:drawable/btn_default" 
    /> 

<ImageButton 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:src="@drawable/ic_feather" 
    android:background="@android:drawable/btn_default" 
    android:backgroundTint="@color/colorPrimaryDark" 
    /> 

<ImageButton 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:src="@drawable/ic_plane" 
    android:background="@android:drawable/btn_default" 
    android:backgroundTint="@color/colorPrimaryDark" 
    /> 
<ImageButton 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:src="@drawable/ic_plane" 
    android:background="@android:drawable/btn_default" 
    android:backgroundTint="@color/colorAccent" 
    /> 
+0

대단히 감사합니다. 그냥 바로 답변을 표시 :) –