2012-03-11 61 views
2

我的Android應用程序使用按鈕窗口小部件的默認樣式,除了我的Galaxy Tab 10.1外,看起來很好。在那裏,默認的按鈕樣式似乎已經變成黑色背景,黑色文字;它看起來很糟糕。Android的Button小部件樣式的源代碼在哪裏?

我嘗試手動應用默認的內置按鈕樣式在XML中是這樣的;問題平板電腦不會改變行爲和乖巧的設備也不會改變:

<Button 
    style="@android:style/Widget.Button" 
    <!-- other stuff --> 
    /> 

美中不足的是,另內置按鈕風格確實出現很好的(灰色背景的標準黑色文本)該行爲不當的平板電腦:

<Button 
    style="@android:style/Widget.Button.Small" 
    <!-- other stuff --> 
    /> 

麻煩,當然,這種風格使按鈕更小。我真正想做的只是找到Widget.Button的標準源代碼(XML,Java,不管),然後將其複製粘貼到我的應用程序中。

我在哪裏可以找到源代碼?

回答

6

你可以找到這個文件中的所有樣式: <installation folder>\android-sdk-windows\platforms\android-8\data\res\values\styles.xml

哪裏android-8可以更改爲SDK的任何其他版本。

<style name="Widget.Button"> 
    <item name="android:background">@android:drawable/btn_default</item> 
    <item name="android:focusable">true</item> 
    <item name="android:clickable">true</item> 
    <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item> 
    <item name="android:textColor">@android:color/primary_text_light</item> 
    <item name="android:gravity">center_vertical|center_horizontal</item> 
</style> 

<style name="Widget.Button.Small"> 
    <item name="android:background">@android:drawable/btn_default_small</item> 
</style> 

但它不會那麼容易改變這種風格,因爲它有可繪製,XML文件與另一個文件自身引用引用不屬於圖像,但。 你可以看一下這樣的文件在這裏的一個:...\android-8\data\res\drawable\btn_default.xml

0

您可以使用此Angry Tools設計一個按鈕樣式

輸出:

enter image description here

button.xml:

<Button 
    android:id="@+id/angry_btn" 
    android:layout_width="250dp" 
    android:layout_height="60dp" 
    android:background="@drawable/button_shape" 
    android:shadowColor="#A8A8A8" 
    android:shadowDx="0" 
    android:shadowDy="0" 
    android:shadowRadius="5" 
    android:text="Button" 
    android:textColor="#FFFFFF" 
    android:textSize="30sp" /> 

button_shape.xml:

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

    <corners android:radius="33dp" /> 

    <gradient 
     android:angle="90" 
     android:centerColor="#37A82F" 
     android:centerX="38%" 
     android:endColor="#52FF86" 
     android:startColor="#41E8C1" 
     android:type="linear" /> 

    <padding 
     android:bottom="0dp" 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp" /> 

    <size 
     android:height="60dp" 
     android:width="250dp" /> 

    <stroke 
     android:width="3dp" 
     android:color="#878787" /> 

</shape>