0

我有一个自定义 ImageButton,我在其中放置了一个 png 和悬停图像,它对某些部分是透明的。因此,当它集中注意力时,它也会以蓝色焦点为自己。我想删除那个焦点蓝色,但同时我希望我的 hoverImage 工作!
这是我的 ImageButton 类:http ://codepad.org/mjtIUKLR

4

1 回答 1

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);
}

在上面的示例中,我使用自定义渐变来突出显示,它会覆盖默认的蓝色。在你的情况下,你显然会想要改变你的形象或其他东西。

于 2013-01-29T14:48:32.037 回答