Android:单击时更改按钮颜色

霍科沙

基本上,我试图创建一个按钮,单击时(注意:不是按下)将从COLOR1改变颜色,COLOR2。再次单击,它将从color2变回color1。

我疯狂地搜索,并且设法提取的唯一信息是如何在按下按钮时(即用户按下按钮时)更改颜色(此代码将写在下面)。但是,我希望用户单击(按下并释放)按钮时更改颜色,然后再次单击时更改颜色。

此文件为res / drawable

<!-- Changes color when user hols down button -->
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">
    <shape>
        <!-- change to color2 -->
    </shape>
</item>

<item>
    <shape>
        <!-- change to color1 -->
    </shape>
</item>
</selector>
博扬·克森曼(Bojan Kseneman)
boolean tmp = false;
button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
         tmp = !tmp;
         v.setBackgroundColor(tmp ? Color.RED : Color.BLUE);
    }
});

编辑:显然你想有一个更复杂的例子

首先在中创建一个可绘制的XML,并将其命名为pink_button.xml,然后将以下代码放入其中

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

    <solid android:color="#FF5EF1"/>
    <corners android:radius="15dp"/>
    <stroke
        android:width="1dp"
        android:color="#303030"/>

</shape>

现在制作一个blue_button.xml

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

    <solid android:color="#008DFF"/>
    <corners android:radius="15dp"/>
    <stroke
        android:width="1dp"
        android:color="#303030"/>

</shape>

现在进行一些演示活动布局,我使用了button_demo_activity.xml

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

    <Button
        android:id="@+id/btnDemo"
        android:layout_width="150dp"
        android:layout_height="30dp"
        android:layout_centerInParent="true"
        android:layout_marginTop="100dp"
        android:background="@drawable/pink_button"
        android:gravity="center"
        android:text="PINK"
        android:textColor="@android:color/white"
        android:textSize="15sp"/>

</RelativeLayout>

最后,将活动命名为任意名称,我使用ButtonDemoActivity

public class ButtonDemoActivity extends Activity {


    private Button btnDemo;
    private boolean isPink = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.button_demo_activity);

        btnDemo = (Button) findViewById(R.id.btnDemo);
        btnDemo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                isPink = !isPink;
                int resId = isPink ? R.drawable.pink_button : R.drawable.blue_button;
                btnDemo.setBackgroundResource(resId);
                btnDemo.setText(isPink ? "PINK" : "BLUE");
            }
        });
    }
}

这就是每个状态下按钮的最终外观 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用户单击并释放按钮时如何更改android按钮的颜色

来自分类Dev

单击时更改按钮颜色

来自分类Dev

单击按钮时如何更改按钮颜色

来自分类Dev

单击按钮时更改TextView的颜色

来自分类Dev

单击按钮时更改焦点颜色

来自分类Dev

单击按钮时如何更改背景颜色

来自分类Dev

单击 JavaScript 时更改按钮颜色

来自分类Dev

单击时更改按钮的背景颜色

来自分类Dev

单击时更改多个按钮颜色

来自分类Dev

单击按钮时更改网站链接颜色

来自分类Dev

单击按钮时如何更改“颜色”名称?

来自分类Dev

单击时如何更改按钮颜色?

来自分类Dev

单击时临时更改按钮的颜色

来自分类Dev

在Android中单击按钮时如何更改ListView的按钮背景颜色

来自分类Dev

单击时使用多种颜色更改单选按钮的颜色

来自分类Dev

单击时使用多种颜色更改单选按钮的颜色

来自分类Dev

单击时将文本的颜色更改为随机颜色(按钮)

来自分类Dev

单击“颜色”按钮时如何更改矩形的颜色

来自分类Dev

如何在单击按钮时更改按钮的背景颜色

来自分类Dev

如何在单击时更改按钮的颜色,并在下次单击时恢复为默认颜色?

来自分类Dev

在MVVM模式中单击时更改按钮颜色

来自分类Dev

使用引导程序单击时如何更改按钮的颜色?

来自分类Dev

JavaScript:单击按钮时无法更改div的背景颜色

来自分类Dev

如何在单击按钮时更改矢量绘制路径的颜色

来自分类Dev

单击按钮时更改选项卡颜色

来自分类Dev

在猕猴桃中单击时如何更改按钮颜色

来自分类Dev

使用jQuery单击删除按钮时更改行背景颜色

来自分类Dev

单击HTML / CSS时,单选按钮不会更改背景颜色

来自分类Dev

单击按钮时更改边框颜色vuetify v卡

Related 相关文章

热门标签

归档