2012-07-24 140 views
2

我有这个按钮Android的 - 按钮的背景颜色缩小按钮的高度

<Button 
android:id="@+id/learn" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_marginTop ="5dp" 
android:text="Hello StackOverflow" 
style="@style/home_page_buttons"  
/> 

,我试图给它这种风格

<style name="home_page_buttons"> 
    <item name="android:layout_marginLeft">15dp</item> 
    <item name="android:layout_marginRight">15dp</item> 

    <item name="android:textColor">@color/light_best_blue</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:color">@color/white</item> 
    <item name="android:background">@color/white</item> 

</style> 

这条线:

<item name="android:background">@color/white</item> 

使背景变成了我想要的白色,但由于某种原因,它缩小了按钮的高度并使其变得难看。

任何想法为什么发生这种情况,以及如何制止这种副作用?

谢谢!

回答

3

阿卜杜是正确的,这可能是一个解决方案为您

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#FFFFFF" android:endColor="#BBBBBB" 
      android:angle="270"/> 
    <stroke android:width="2dp" 
      android:color="#555555" /> 
    <corners android:bottomRightRadius="7dp" 
     android:bottomLeftRadius="5dp" 
     android:topLeftRadius="5dp" 
     android:topRightRadius="7dp"/>  
</shape> 

drawableXML创建这个,还有这个设置为您BackgoundColor

+0

你的意思是把这个XML在通常我会有图像的目录? – Genadinik 2012-07-24 16:45:16

+0

是的,我把我的地图放入drawable中,然后按钮背景的backgoundColor =“@ drawable/yourfile” – 2012-07-24 17:08:25

1

当你style="@style/home_page_buttons"你改变了Android按钮的默认样式

,如果你想保持它,只是做一个背景图片为您的按钮

3

默认按钮都有一个固定的最小高度,这是等于底层图像的高度。在这里,由于您使用的是颜色,因此它没有最小高度。所以,它占据了文本的高度。对于你的情况,你将不得不修复你的按钮的高度。

更好的方法是使用自定义按钮图像。

+0

明白了,但我真的没有办法快速制作图像。是否有另一种方式不处理图像? – Genadinik 2012-07-24 16:35:38

+0

你可以使用Shape drawables。 http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape – 2012-07-24 16:38:00

0

我不知道这是取决于版本或由于到任何最近的更改由于我有一个非常新的Android Studio版本,但我似乎至少有一定程度的成功通过指定Padding属性来恢复额外的空间。

只需添加该属性:

android:padding="5dp" 

按钮将会重新获得大部分空间,它失去的。我建议调整数字,或者可能将属性分成4个方向变体,以便根据需要自定义间距。

这似乎也适用于EditText以及按钮,因为两者似乎都有同样的问题。