Android设置按钮点击后变色(导航栏变色)

Layout设置每个按钮id

<RadioGroup
            android:id="@+id/rg_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/rb_home"
                style="@style/nav_style"
                android:checked="true"
                android:drawableTop="@drawable/nav_draw_home"
                android:text="@string/nav_home"/>

            <RadioButton
                android:id="@+id/rb_query"
                style="@style/nav_style"
                android:drawableTop="@drawable/nav_draw_query"
                android:text="@string/nav_query"/>

            <RadioButton
                android:id="@+id/rb_recite"
                style="@style/nav_style"
                android:drawableTop="@drawable/nav_draw_recite"
                android:text="@string/nav_recite"/>

            <RadioButton
                android:id="@+id/rb_exam"
                style="@style/nav_style_exam"
                android:drawableTop="@drawable/nav_draw_exam"
                android:text="@string/nav_exam"/>

            <RadioButton
                android:id="@+id/rb_person"
                style="@style/nav_style_person"
                android:drawableTop="@drawable/nav_draw_person"
                android:text="@string/nav_person"/>
        </RadioGroup>

MainActivity绑定OnClickListener,重写onClick方法

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.rb_home:
                setChangeColor(btn_home);
                break;
            case R.id.rb_query:
                setChangeColor(btn_query);
                break;
            case R.id.rb_recite:
                setChangeColor(btn_recite);
                break;
            case R.id.rb_exam:
                setChangeColor(btn_exam);
                break;
            case R.id.rb_person:
                setChangeColor(btn_person);
                break;
        }
    }

    private void setChangeColor(RadioButton btn) {
        List<RadioButton> buttonList=new ArrayList<>();
        if (buttonList.size()==0){
            buttonList.add(btn_home);
            buttonList.add(btn_query);
            buttonList.add(btn_recite);
            buttonList.add(btn_exam);
            buttonList.add(btn_person);
        }
        for (int i = 0; i <buttonList.size() ; i++) {
            buttonList.get(i).setTextColor(0xffA5A5A5);
        }
        if(btn==btn_recite){
            btn.setTextColor(0xffEACE8B);
        }
        else{
            btn.setTextColor(0xff5F85A1);
        }
    }

setTextColor()方法的参数为十六进制颜色代码。0x代表十六进制,ff代表alpha值,剩下的六位分别对应R,G,B的十六进制
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43873198/article/details/108911610