RadioButton相关
2019-07-30 本文已影响0人
玖玖君
项目中使用的是:radiobutton,要实现这样的功能着实苦恼了很久。后来想到了写方法来放大某个radiobutton,重置其他radiobutton ,这个方法的缺陷是因为放大的是控件,如果图片分辨率不高的话放大会造成一定程度的失真。
使用方法:当点击一个radiobutton的时候,调用以下两个方法:
setButtonScale(传入要放大的radiobutton)
resetScale(传入其他几个要重置的radiobutton )
代码如下:
public static final float SCALE_MAX = 1.2F;
public static final float SCALE_NOMAL = 1f;
private void setButtonScale(RadioButton controlRadioButton, float scaleType) {
controlRadioButton.setScaleX(scaleType);
controlRadioButton.setScaleY(scaleType);
}
public void resetScale(RadioButton bt1, RadioButton bt2) {
bt1.setScaleX(SCALE_NOMAL);
bt1.setScaleY(SCALE_NOMAL);
bt2.setScaleX(SCALE_NOMAL);
bt2.setScaleY(SCALE_NOMAL);
}
调用方法如下
switch (checkedId) {
case R.id.rb_home:
mVp.setCurrentItem (0);
setButtonScale (mRbHome, (float) 1.1);//变大
resetScale (mRbTixi, mRbDaohang, mRbGongzong, mRbXiangmu);//恢复默认大小
break;
case R.id.rb_tixi:
mVp.setCurrentItem (1);
setButtonScale (mRbTixi, (float) 1.1);
resetScale (mRbHome, mRbDaohang, mRbGongzong, mRbXiangmu);//恢复默认大小
break;
case R.id.rb_gongzong:
mVp.setCurrentItem (2);
setButtonScale (mRbGongzong, (float) 1.1);//变大
resetScale (mRbHome, mRbDaohang, mRbTixi, mRbXiangmu);
break;
case R.id.rb_daohang:
mVp.setCurrentItem (3);
setButtonScale (mRbDaohang, (float) 1.1);//变大
resetScale (mRbHome, mRbGongzong, mRbTixi, mRbXiangmu);//恢复默认大小
break;
case R.id.rb_xiangmu:
mVp.setCurrentItem (4);
setButtonScale (mRbXiangmu, (float) 1.1);//变大
resetScale (mRbHome, mRbGongzong, mRbTixi, mRbDaohang);//恢复默认大小
break;
}