2014-02-16 42 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屬性並使用2個這樣的drawables用於正常狀態和按下狀態,但我無法複製Holo.Light主題的默認Button行爲。所以我正在尋找兩種可能的解決方案:或者以某種方式圍繞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 drawable進行嘗試的原因相同:圓角。 –

回答

1

原始樣式使用9個補丁。
如果您閱讀文檔並搜索btn_default(從1995行開始),您將學習如何製作覆蓋標準可繪製樣式(9個補丁)的樣式。
然後,只需將原始作品複製到應用的可繪製文件夾並繞過角落即可。

他們會在StateList繪製被稱爲,稱爲btn_default_holo_light.xml

如果你使用的是Windows,它在這裏:C:\ Your_Path_To_Eclipse \ SDK \平臺\ Android的XY \ DATA \水庫\繪製,其中XY是11〜19(取決於你的minSdkVersion)

而9個修補這裏:C:\ Your_Path_To_Eclipse \ SDK \平臺\ Android的XY \ DATA \水庫\繪製-RES,其中XY爲11到19(取決於您的minSdkVersion),RES是特定的dpi分辨率(作爲參考的mdpi)