我的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,无论如何)并将其复制粘贴到我的应用程序中。
我在哪里可以找到该源代码?
答案 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设计按钮样式
<强>输出:强>
<强> 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>