我开始使用一个功能齐全的应用程序,所有按钮位于正确的位置和正确的尺寸......但现在我想尝试首次使用样式。特别是我希望我的按钮中的文字颜色为深蓝色,背景为白色。所以我在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"
?或类似的东西?
答案 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>