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