首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android:更改背景颜色查看onClick按钮

Android:更改背景颜色查看onClick按钮
EN

Stack Overflow用户
提问于 2014-03-27 17:07:37
回答 7查看 20.7K关注 0票数 0

当我单击button时,如何将按钮下的背景颜色更改为View?我尝试过selector不工作,因为视图不会改变颜色。有什么问题吗?

这是我的代码:

XML

代码语言:javascript
复制
    ...
          <View
            android:id="@+id/viewPlanos2"
            android:layout_width="match_parent"
            android:layout_height="3dp"
            android:layout_gravity="center" />

        <Button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@color/transparente"
            android:drawableTop="@drawable/buttonimage"
            android:gravity="center"
            android:paddingTop="50dp" />

        <View
            android:id="@+id/viewPlanos1"
            android:layout_width="match_parent"
            android:layout_height="3dp"
            android:layout_gravity="center" />
 ...

JAVA

代码语言:javascript
复制
View linea2 = (View)findViewById(R.id.viewPlanos2);
linea2.setBackgroundColor(getResources().getColor(R.drawable.linea_verde));

linea_verde

代码语言:javascript
复制
<item android:state_pressed="true"><shape>
        <gradient android:angle="90" android:endColor="@color/azul" android:startColor="@color/azulOscuro" />
    </shape></item>
<item android:state_focused="true"><shape>
        <gradient android:angle="90" android:endColor="@color/azul" android:startColor="@color/azulOscuro" />
    </shape></item>
<item><shape>
        <solid android:color="@color/rojo" />
    </shape></item>

编辑:

我试过了:

代码语言:javascript
复制
public void onClick(View v) {

    if(v == botonMetro) {

        linea2.setBackgroundResource(R.drawable.linea_verde);
                    and

        linea2.setBackgroundColor(getResources().getColor(R.drawable.linea_verde));
    }
}

但是代码不起作用

EN

回答 7

Stack Overflow用户

发布于 2014-03-27 17:11:46

您错误地使用了这个可绘制的

代码语言:javascript
复制
 view.setBackgroundResource(R.drawable.linea_verde)
票数 0
EN

Stack Overflow用户

发布于 2014-03-27 17:14:30

正如您所说的,当我单击某个按钮时,将背景颜色更改为View this

像这样做

代码语言:javascript
复制
 button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

                  // change color of your view here  
           linea2.setBackgroundColor(getResources().getColor(R.drawable.linea_verde));

          }
    });
票数 0
EN

Stack Overflow用户

发布于 2014-03-27 17:17:48

setBackgroundColor()仅用于颜色,但似乎您使用的是可绘制的状态列表。如果您确定要根据Button的状态使用不同的颜色,请使用以下代码设置可绘制的状态列表:

代码语言:javascript
复制
view.setBackgroundDrawable(R.drawable.linea_verde);

否则,只需使用以下命令设置背景颜色

代码语言:javascript
复制
view.setBackgroundColor(getResources().getColor(R.drawable.yourcolor);

但在这种情况下,请使用单击侦听器,并确保实际使用颜色资源,例如:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="opaque_red">#f00</color>
    <color name="translucent_red">#80ff0000</color>
</resources>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22682767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档