2014-02-16 4 views
1

Theme.Holo.Light에 따라 보이는 버튼이 있습니다. 나는 다음에 그 배경을 설정하여 모서리를 둥글게하는 데 사용 :버튼의 모서리를 둥글게하지만 기본 모양을 유지하는 방법

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:padding="10dp" 
    android:shape="rectangle" > 

    <corners 
    android:bottomLeftRadius="15dp" 
    android:bottomRightRadius="15dp" 
    android:topLeftRadius="15dp" 
    android:topRightRadius="15dp" /> 
    </shape> 

는 이제 Button이 투명하게됩니다. 선택기를 만들려고했는데 solid 특성을 추가하고 일반 및 누름 상태에 대해 drawables 중 2 개를 사용했습니다. 그러나 Holo.Light 테마의 기본 동작을 복사 할 수 없습니다. 그래서 2 가지 가능한 솔루션을 찾고 있습니다 : 어떻게 든 기본 스타일에 영향을주지 않고 Button의 모서리를 둥글게하거나 언급 된 스타일을 정의하는 XML을 찾아서 복사 할 수 있습니다. SDK 내부를보고이 참조를 사용했습니다 : https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml하지만 성공하지 못했습니다.

둥근 모서리를 만드는 방법에 대한 아이디어가 있으십니까? Button 다른 모든 모양 속성을 기본값으로 유지 하시겠습니까?

+0

아마도 9 개의 패치를 사용하면 도움이 될 것입니다. –

+0

@ArtooDetoo 왜? 나는 사용자 정의 배경이 필요 없으며 버튼의 모서리를 둥글게하고 다른 모든 것을 디폴트로 유지해야합니다. – Droidman

+0

xml 드로어 블을 사용하여 시도한 것과 같은 이유로 둥근 모서리를 얻습니다. –

답변

1

원래 스타일은 9 개의 패치를 사용합니다.
문서를 읽고 btn_default (1995 년부터 시작)를 검색하면 표준 드로어 블 (9 개 패치)을 덮어 쓰는 스타일을 만드는 방법을 배우게됩니다.
다음은 원래 작품을 앱의 드로어 블 폴더에 복사하고 모서리를 돌리는 것입니다. C : Windows를 사용하는 경우

그들은이 StateList 드로어 블에서 참조 할 수 있습니다

, 그것은 여기,

btn_default_holo_light.xml 라고 \ Your_Path_To_Eclipse \ SDK \ 플랫폼은 안드로이드-XY \ 데이터 \ \ XY 11 19입니다 고해상도 \ 당김는, (당신에 따라의 minSdkVersion)

그리고 여기에 9 패치 : C : \ Your_Path_To_Eclipse \ SDK \ 플랫폼은 안드로이드-XY \ 데이터 \ 입술 \ 당김-RES에게 \ 여기서 XY는 11에서 19까지이며 (사용자에 따라 minSdkVersion) RES는 특정 dpi 해상도 (참조 용 mdpi)입니다.

관련 문제