项目名称:仿团购底部菜单Appp
项目功能:通过点击按钮,使 RadioGroup 上面的TextView 的字题颜色 和 背景颜色发生变化
项目技术:使用 RadioGroup 的互斥的功能来实现的;RadioButton 里头字体颜色的变化和图标颜色的变化使用过 selector 来实现的
注意:给RadioGroup设置的监听为__ OnCheckedChangeListener
开发步骤:
1.写 selector.xml colors.xml
2.布局
3.声明控件
4.为控件设置监听
界面如下:
代码如下:
deal_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_deal_selected"
></item>
<item
android:drawable="@drawable/ic_tab_deal_unselected"
></item>
</selector>
nearyby_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_nearby_selected"
></item>
<item
android:drawable="@drawable/ic_tab_nearby_unselected"
></item>
</selector>
my_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_my_selected"
></item>
<item
android:drawable="@drawable/ic_tab_my_unselected"
></item>
</selector>
more_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_more_selected"
></item>
<item
android:drawable="@drawable/ic_tab_more_unselected"
></item>
</selector>
text_color_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"android:color="@color/main_color"></item>
<itemandroid:color="@color/default_tab_menu_text_color"></item>
</selector>
colors.xml
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<color name="main_color">#FF6625</color>
<colorname="default_tab_menu_text_color">#999999</color>
</resources>
MainActivity.java
package cn.sophia.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
// 当点击radioButton 时候,图标颜色和字体也要发生相应的变化,TextVIew 的字体颜色和 背景颜色也发生相应的变化
public class MainActivity extends Activity {
// 声明控件
private RadioGroup rgTabmenu;
private TextView tvContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
rgTabmenu = (RadioGroup) findViewById(R.id.rg_tab_menu);
tvContent = (TextView) findViewById(R.id.tv_content);
// 为控件设置监听
rgTabmenu.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId) {
case R.id.rb_tab_menu_deal:
tvContent.setText("团购");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
break;
case R.id.rb_tab_menu_nearby:
tvContent.setText("附近");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_green_light));
break;
case R.id.rb_tab_menu_my:
tvContent.setText("我的");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_orange_light));
break;
case R.id.rb_tab_menu_more:
tvContent.setText("更多");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_red_light));
break;
}
}
});
}
}