Eclipse GUI错误地显示新样式的按钮

时间:2013-10-02 16:35:24

标签: android eclipse

我开始使用一个功能齐全的应用程序,所有按钮位于正确的位置和正确的尺寸......但现在我想尝试首次使用样式。特别是我希望我的按钮中的文字颜色为深蓝色,背景为白色。所以我在res / values - >

中的styles.xml中写了以下内容
<?xml version="1.0" encoding="utf-8"?>
<resources>

   <style name="mybut"  parent="@android:style/Widget.Button">

        <item name="android:textColor">@color/dblue</item>
         <item name="android:background">#ffffffff</item>
    </style>

</resources>

我按如下方式修改了我的按钮代码:

    <Button
        android:id="@+id/spec"
        style="@style/mybut"  <-- I added this line here
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.12"
        android:text="@string/spec" />

在eclipse的XML查看器中,新按钮在各方面看起来都是正确的。但是在运行时,在我的Android设备上,按钮的高度缩小了大约三分之一!有什么想法吗?

编辑:我对parent="@android:style/Widget.Button"位不太自信。我怀疑也许我已经在某种程度上使用了其他风格?/主题?也许这条线看起来应该类似于parent="@android:otherstyle/Widget.Button"parent="@android:style/other.Widget.Button" ......或类似的东西。

编辑:仅供参考...我正在尝试这种“主屏幕”活动,它只包含两个大按钮。我将style="@style/mybut"添加到两个按钮中的一个。现在它们的尺寸明显不同。

编辑:我注意到在清单中我有android:theme="@android:style/Theme.NoTitleBar.Fullscreen" ...这是否意味着我需要让我的按钮的父android:theme="@android:style/Theme.NoTitleBar.Fullscreen.Widget.Button"?或类似的东西?

2 个答案:

答案 0 :(得分:1)

默认情况下,Button具有9补丁背景,而不是简单的颜色。此图像具有填充和内容区域,可以改变按钮的实际大小。

当您更改背景时,您正在剥离该填充,并且它看起来更小。正确的方法是创建一个新的9补丁,基于旧补丁,但颜色已更改。

答案 1 :(得分:0)

问题必须在这里:

  android:layout_weight="0.12"

如果您在运行应用程序时有action_bar或类似内容,则该按钮将缩小。在预览中,action_bar没有出现(我只是在猜测)。

修改
这是我在我的应用程序中使用的自定义按钮示例,我设置了最小高度和宽度。 我没有使用:parent="@android:style/Widget.Button",而是使用:parent="android:Widget.Button"

<style name="ButtonCustom" parent="android:Widget.Button">
    <item name="android:background">@drawable/btn_default_holo_light</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
    <item name="android:textColor">#fff</item>
</style>