0

我从一个功能齐全的应用程序开始,所有按钮都在正确的位置和正确的大小......但现在我想第一次尝试使用样式。特别是我想让按钮中的文本颜色为深蓝色,背景为白色。所以我在 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 查看器中,新按钮在各个方面看起来都是正确的。但是在运行时,在我的安卓设备上,按钮的高度缩小了大约三分之一!有任何想法吗?

编辑:我对这个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"级?或类似的东西?

4

2 回答 2

1

默认情况下,aButton有一个 9-patch 背景,而不是简单的颜色。此图像具有填充和内容区域,可更改按钮的实际大小。

当您更改背景时,您正在剥离该填充,并且它看起来更小。正确的做法是在旧的基础上创建一个新的 9-patch,但改变了颜色。

于 2013-10-02T17:04:56.500 回答
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>
于 2013-10-02T16:49:21.277 回答