要移除Android中FloatingActionButton(浮动操作按钮)的边框悬停效果,可以使用以下方法:
val fab = findViewById(R.id.fab)
fab.background = getCustomSelector()
FloatingActionButton fab = findViewById(R.id.fab);
fab.setBackground(getCustomSelector());
在上述代码中,getCustomSelector()方法返回一个自定义的Selector对象,用于定义FloatingActionButton在不同状态下的背景颜色和形状。
以下是一个示例的getCustomSelector()方法的实现,用于在按下和松开时改变FloatingActionButton的背景颜色:
fun getCustomSelector(): StateListDrawable {
val states = StateListDrawable()
val pressedShape = GradientDrawable()
pressedShape.shape = GradientDrawable.OVAL
pressedShape.setColor(Color.RED) // 设置按下时的背景颜色
val defaultShape = GradientDrawable()
defaultShape.shape = GradientDrawable.OVAL
defaultShape.setColor(Color.BLUE) // 设置默认的背景颜色
states.addState(intArrayOf(android.R.attr.state_pressed), pressedShape)
states.addState(intArrayOf(), defaultShape)
return states
}
public StateListDrawable getCustomSelector() {
StateListDrawable states = new StateListDrawable();
GradientDrawable pressedShape = new GradientDrawable();
pressedShape.setShape(GradientDrawable.OVAL);
pressedShape.setColor(Color.RED); // 设置按下时的背景颜色
GradientDrawable defaultShape = new GradientDrawable();
defaultShape.setShape(GradientDrawable.OVAL);
defaultShape.setColor(Color.BLUE); // 设置默认的背景颜色
states.addState(new int[]{android.R.attr.state_pressed}, pressedShape);
states.addState(new int[]{}, defaultShape);
return states;
}
上述代码中,将按下时的背景颜色设置为红色,而默认的背景颜色设置为蓝色。你可以根据需要自定义背景颜色和形状。
通过以上方法,你可以移除FloatingActionButton的默认边框悬停效果,并自定义按下和松开时的背景颜色和形状。