//效果是比如底部四个radbutton按钮,点击哪个,哪个换图片,字体颜色,再点别的原先的复原。来回切换的效果,就是qq微信的那种底部效果。
//1.第一步xml布局 写四个radiobuton 默认都是true
<RadioGroup
android:layout_alignParentBottom="true"
android:id="@+id/mLin"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:checked="true"
android:id="@+id/mShouYe"
android:gravity="center_horizontal"
android:text="首页"
android:drawableTop="@drawable/tu_color"
android:button="@null"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/mJiaKaoZhuangJia"
android:gravity="center_horizontal"
android:text="按钮二"
android:drawableTop="@drawable/tu2_color"
android:button="@null"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/mSheQu"
android:gravity="center_horizontal"
android:text="按钮三"
android:drawableTop="@drawable/tu3_color"
android:button="@null"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/mWode"
android:gravity="center_horizontal"
android:text="我的"
android:drawableTop="@drawable/tu4_color"
android:button="@null"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</RadioGroup>
//2.第二步再写个drawable里的selector布局
//选中状态是图片home1s
//非选中状态是home1
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@mipmap/home1"></item>
<item android:state_checked="true" android:drawable="@mipmap/home1s"></item>
</selector>
//3.顺带的可以实现一下点击切换fragment
FragmentManager manager=getSupportFragmentManager();
home1Fragment = new Home1Fragment();
home2Fragment = new Home2Fragment();
home3Fragment = new Home3Fragment();
home4Fragment = new Home4Fragment();
manager.beginTransaction()
.add(R.id.mFrame, home1Fragment)
.add(R.id.mFrame, home2Fragment)
.add(R.id.mFrame, home3Fragment)
.add(R.id.mFrame, home4Fragment)
.hide(home2Fragment)
.hide(home3Fragment)
.hide(home4Fragment)
.commitAllowingStateLoss();
manager.beginTransaction().hide(home1Fragment).hide(home2Fragment).hide(home3Fragment).hide(home4Fragment).commitAllowingStateLoss();
switch (v.getId()){
case R.id.mShouYe:
//点哪个 哪个变字体颜色,顺带显示fragment
mShouYe.setTextColor(Color.parseColor("#3184bc"));
manager.beginTransaction().show(home1Fragment).commitAllowingStateLoss();
break;
case R.id.mJiaKaoZhuangJia:
mJiaKaoZhuangJia.setTextColor(Color.parseColor("#3184bc"));
manager.beginTransaction().show(home2Fragment).commitAllowingStateLoss();
break;
case R.id.mSheQu:
mSheQu.setTextColor(Color.parseColor("#3184bc"));
manager.beginTransaction().show(home3Fragment).commitAllowingStateLoss();
break;
case R.id.mWode:
mWode.setTextColor(Color.parseColor("#3184bc"));
manager.beginTransaction().show(home4Fragment).commitAllowingStateLoss();
break;
}
//注意 上面的这种提交:.commitAllowingStateLoss();容易发生一个fragment重叠的问题,所以用:.commit();方式提交。
mManager.beginTransaction().show(dialFragment).commit();
//也可以这样设置颜色:
//tv.setTextColor(this.getResources().getColor(R.color.red));//通过获得资源文件进行设置。
//上面的那个切换字体颜色太麻烦,你还可以设置一个字体颜色选择器:font_color.xml,可以顺带点击切换字体颜色。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:color="#AEAEAE"/>
<item android:state_checked="true" android:color="#00B7FA"/>
</selector>
//然后在布局调用:android:textColor="@drawable/font_color"
例如:
<RadioButton
android:textColor="@drawable/font_color"
android:id="@+id/mHomeActivity_Customer"
android:gravity="center_horizontal"
android:text="@string/Customer"
android:drawableTop="@drawable/customer"
android:button="@null"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
//-------------------------------------------------------------------完------------------------------------------------------------------------------