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

    科技2022-07-11  113

    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的十六进制

    Processed: 0.029, SQL: 8