改变按钮背景颜色去除空白

时间:2014-12-02 14:52:55

标签: android android-layout android-button

我在显示活动之前更改了一些按钮背景颜色,当按钮显示时,它们缺少周围的空白区域。

enter image description here

如何让按钮变为红色,灰色的位置,并保持白色间距?

2 个答案:

答案 0 :(得分:0)

red_button.xml中创建drawable,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke android:width="2dp"
        android:color="#80FFFFFF" />

  <corners android:radius="25dp" />

  <gradient android:angle="270"
            android:centerColor="#ff0000"
            android:endColor="#ff0000"
            android:startColor="#ff0000" />
</shape>

获得与默认Button

相同的形状

您可以使用radiusstroke width以及stroke color来获取所需的Button

编辑:您可以将颜色添加到原始默认Button,如下所示:

Drawable d = yourButton.getBackground();  
PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);  // or whatever color you like
d.setColorFilter(filter);  

答案 1 :(得分:0)

您可能错过了布局的设置余量。实际上按钮周围有一个空白区域,因此触摸了所有按钮,因此当您设置背景时,白色空间也会变为红色。我想这应该没问题。!

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical">

    <Button
        android:id="@+id/one"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="About"
        android:layout_margin="5dp" />

    <Button
        android:id="@+id/two"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Gallery" 
        android:layout_margin="5dp"/>

    <Button
        android:id="@+id/third"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Media" 
        android:layout_margin="5dp"/>

</LinearLayout>

在strings.xml中

<color name="red">#FF0000</color>

在Java中

   one = (Button) findViewById(R.id.one);
        two = (Button) findViewById(R.id.two);
        three = (Button) findViewById(R.id.third);
        one.setBackgroundResource(R.color.red);
        two.setBackgroundResource(R.color.red);
        three.setBackgroundResource(R.color.red);

输出

This is your desired output?