按钮背景颜色

时间:2013-06-27 06:31:25

标签: android button background-color

嗨,我正在研究android中的自定义键盘工具 与我们的默认Android设备键盘相同。下面显示了格式 我的键盘。

enter image description here

所以,在这里我将backgorund颜色设置为按钮,但它正在寻找 非常笨拙,如下图所示,

enter image description here

我需要将背景颜色设置为红色,如上面屏幕截图所示,这是按钮的默认颜色。当我设置背景颜色时,它会改变按钮的尺寸。

我用来设置背景颜色的代码是,

int mColor = 0xFFFF0000;
b.setBackgroundColor(mColor);
v.setBackgroundColor(mColor);

所以我哪里出错了。

2 个答案:

答案 0 :(得分:2)

enter code here您的普通按钮从系统中获得了设计。如果更改颜色,设计将更改为标准。

您应该为具有形状的按钮创建自己的样式

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="270"
        android:endColor="#aaaaaa"
        android:startColor="#555555" />

    <stroke
        android:width="1dp"
        android:color="#000000" />

    <corners
        android:bottomLeftRadius="10sp"
        android:bottomRightRadius="10sp"
        android:topLeftRadius="10sp"
        android:topRightRadius="10sp" />

</shape>

在drawable中创建一个xml文件并插入上面的代码。

您何时想更改按钮的颜色?如果要通过单击更改颜色,则应使用选择器,如此

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/shapeButtonRed" android:state_focused="true"/>
    <item android:drawable="@drawable/shapeButtonRed" android:state_pressed="true"/>
    <item android:drawable="@drawable/shapeButton"/>

</selector>

现在您必须按下android:backgroud"@drawable/selector"按钮,它会通过单击

更改颜色

答案 1 :(得分:1)

您可以使用滤镜来实现两个按钮的红色着色:

int mColor = 0xFFFF0000;
b.getBackground().setColorFilter(mColor, PorterDuff.Mode.MULTIPLY);
v.getBackground().setColorFilter(mColor, PorterDuff.Mode.MULTIPLY);

使用此导入语句时:

import android.graphics.PorterDuff;

这将保留按钮的默认设计。