2

我创建了一个自定义图像按钮;一个是播放图像按钮,一个是暂停图像按钮。

我想在播放暂停之间切换(即当用户点击按钮时,它必须改变 - 播放暂停或暂停播放)。

对于我的要求,我参考了这个示例 url

当我执行我的程序时,我能够显示按钮,但是当我单击按钮时,我无法更改图像按钮(播放暂停)

谁能帮我?

4

1 回答 1

2

您正在处理的示例使用两个图像,打开关闭图像。但是,它使用这两个图像来根据按钮是否具有焦点来更改按钮的外观。

你想要一些不同的东西。每当单击按钮时,您都希望更改按钮的外观。为此,您可以使用此现有方法:

protected boolean navigationClick(int status, int time){
    fieldChangeNotify(1);
    return true;
}

为此,更改(或添加)一些成员变量以存储播放和暂停位图,然后更改navigationClick()以在它们之间切换:

private Bitmap _currentPicture;
private Bitmap _playPicture;
private Bitmap _pausePicture;

protected boolean navigationClick(int status, int time){
    if (_currentPicture == _playPicture) {
        _currentPicture = _pausePicture;
    } else {
        _currentPicture = _playPicture;
    }
    invalidate();  // may be necessary to force redraw of the button

    fieldChangeNotify(1);
    return true;
}

编辑:您可能还希望在and方法中执行相同的逻辑(如上面的navigationClick()),这取决于您的按钮是否应该可以通过使用拨轮或输入键 来单击。在此处查看示例trackwheelClick()keyChar()

于 2012-09-15T05:11:32.797 回答