Android的Button小部件样式的源代码在哪里?

时间:2012-03-11 05:55:47

标签: android button styles

我的Android应用程序使用默认样式的Button小部件,除了我的Galaxy Tab 10.1外,它看起来很好。在那里,默认按钮样式似乎已更改为带有黑色文本的深色背景;它看起来很糟糕。

我试过在XML中手动应用默认的内置按钮样式;问题平板电脑不会改变行为,而且表现良好的设备也不会改变:

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

问题是另一个内置的按钮样式 在行为不端的平板电脑上显示得很好(灰色背景上的标准黑色文字):

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

当然,问题在于这种风格使按钮更小。我真正想做的就是找到Widget.Button的标准源代码(XML,Java,无论如何)并将其复制粘贴到我的应用程序中。

我在哪里可以找到该源代码?

2 个答案:

答案 0 :(得分: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>

但是改变这种风格并不容易,因为它引用了drawables,它们不是图像,而是xml文件,它们有自己对另一个文件的引用。 您可以在此处查看其中一个此类文件:...\android-8\data\res\drawable\btn_default.xml

答案 1 :(得分: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>