我有一个自定义的ImageButton,我在其中放置了一个png和悬停的Image,它从某些部分透明。因此,当它被聚焦时,它也会以蓝色焦点自我。我想删除那个焦点蓝色,但同时我想让我的hoverImage工作!
这是我的ImageButton类:http://codepad.org/mjtIUKLR
答案 0 :(得分:2)
对我有用的解决方案是将此功能添加到paint方法并跟踪是否已获得焦点:
boolean hasFocus = false;
public void onFocus(int direction) {
invalidate();
hasFocus = true;
}
public void onUnfocus() {
hasFocus = false;
invalidate();
super.onUnfocus();
}
然后在你的绘画方法中使用它:
public void paint(Graphics graphics) {
if (hasFocus){
graphics.drawShadedFilledPath(xPositions, yPositions, null,
HIGHLIGHTED_GRADIENT, null);
}else{
graphics.drawShadedFilledPath(xPositions, yPositions, null,
GRADIENT, null);
}
super.paint(graphics);
}
在上面的示例中,我使用自定义渐变突出显示,覆盖默认的蓝色。在你的情况下,你显然想要改变你的形象。