??最近想要實現(xiàn)一個點擊放大并改變底部導航欄圖片的需求,尋找了一些常用的框架剃盾。
??比如bottombar座每,實現(xiàn)效果如下:
image.png
??比如BottomNavigationView ,實現(xiàn)效果如下:
image.png
??以上兩個第三方庫都可以實現(xiàn)放大縮小功能,單都無法改變底部導航欄的圖片与涡,只能統(tǒng)一改變顏色。而針對于既要進行放大操作持偏,又要進行更換圖片操作的底部導航欄來說驼卖,不能滿足需求。
??項目中使用的是:radiobutton鸿秆,要實現(xiàn)這樣的功能著實苦惱了很久酌畜。后來想到了寫方法來放大某個radiobutton,重置其他radiobutton 卿叽,這個方法的缺陷是因為放大的是控件桥胞,如果圖片分辨率不高的話放大會造成一定程度的失真恳守。
??使用方法:當點擊一個radiobutton的時候,調(diào)用以下兩個方法:
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);
}
??實現(xiàn)效果如下:
image.png