我有以下自定义CompoundButton :
publicclasscustomcompoundbuttonextendscompoundbutton {
publiccustomcompoundbutton (上下文上下文) {
this (上下文、空值);
}
publiccustomcompoundbutton (上下文上下文,属性et attrset ) )。
super (上下文、attrSet );
设置(;
}
私有语音设置
setbackgroundresource (r.drawable.button _ selector );
设置gravity (gravity.center );
set clickable (真;
}
}
将布局添加到布局后,根据代码设置了Button的宽度和高度。
button.getLayoutParams ().width=myWidth;
button.getLayoutParams ().height=myHeight;
button_selector.xml :
Android : drawable=' @ drawable/button _ checked '
Android : state _ checked=' true ' /
Android : drawable=' @ drawable/button _ unchecked '
Android : state _ checked=' false ' /
button_checked.xml :
安卓: shape=' oval '
button_unchecked.xml :
安卓: shape=' oval '
安卓: width=' 2dp '
安卓: color=? colorAccent' /
它将按预期工作,如果未选定,按钮将为空圆,如果选定,按钮将为实心圆。
问题是,我不能对这种行为施加涟漪效应。
您试图将选择器包装在ripple标签中,如下所示:
android:color='#ffffff '
Android : drawable=' @ drawable/button _ checked '
Android : state _ checked=' true ' /
Android : drawable=' @ drawable/button _ unchecked '
Android : state _ checked=' false ' /
这种方法有几个问题。
背景的形状完全被波纹覆盖,看不见(不管是否选中)。
背景的形状必须保持原样。 我想在点击按钮的时候添加涟漪效果。 选择“打开”或“关闭”
波纹半径太大,相互重叠
波纹半径必须和我的按钮半径相同。
我不知道怎么做这项工作,我真的很感谢任何建议。