0

当您按下 Android 中的按钮时,它会改变颜色。我希望它保持这种状态。我的意思是我想要这样的东西:

Button btn = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
             btn.setBackGroundColor(R.drawable.clicked /*clicked style*/ );
         }
     });

例子:

在此处输入图像描述

这是一个按下的按钮。我希望它在我停止按下它后保持这种状态。有没有这样简单的方法:

android.R.drawable.btn_default //这是默认按钮样式,我想要按下的:D

4

5 回答 5

1

在您的java代码中编写button.setPressed(true);。它将按钮设置为按下模式。当您想将其设置为按下和未按下时,您可以将参数更改为 true 和 false...

于 2013-09-20T10:40:56.150 回答
1

所以你想让它开始不被按下,然后在被点击后保持按下状态?尝试使用 OnTouchListener 代替添加btn.setPressed(true);

public boolean onTouch(View v, MotionEvent event)
        {
            if (event.getAction() == MotionEvent.ACTION_DOWN)
            {
                btn.setPressed(true);
            }
            return true;
        }
于 2013-09-20T10:41:13.170 回答
1

尝试使用选择器:

在drawable文件夹中定义selector.xml

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/button_pressed_yellow"
              android:state_pressed="true" />
        <item android:drawable="@drawable/button_normal_green" />
    </selector>

并将按钮的背景设置为android:background="@drawable/selector"然后在按钮集的单击事件的代码中btn.setpressed(true);

于 2013-09-20T10:44:42.667 回答
0

您可以尝试这种方式,或者在按下或着色时将图像设置为暗

可绘制/选择器.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
     <item android:state_focused="true" android:drawable="@drawable/buttondark"/>
     <item android:state_pressed="true" android:drawable="@drawable/buttondark" />
     <item android:drawable="@drawable/button" /> 
</selector>

在 on-create 方法里面写

btn.setBackgroundResource(R.drawable.selector);
于 2013-09-20T10:39:43.403 回答
0

查看 StateSelector 图像

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

您可以为按钮/视图的不同状态设置不同的资源。此示例设置不同的颜色:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">    
    <item android:drawable="@color/branded_content_pressed_color" android:state_enabled="true" android:state_pressed="true"/>
    <item android:drawable="@color/branded_content_pressed_color" android:state_enabled="true" android:state_focused="true"/>
    <item android:drawable="@color/branded_content_background_color"/>
</selector>

然后就可以正常设置选择器了

button.setBackgroundResource(R.drawable.selector);
于 2013-09-20T10:43:55.863 回答