首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ImageButton与偏好

ImageButton与偏好
EN

Stack Overflow用户
提问于 2016-08-06 12:38:57
回答 1查看 51关注 0票数 1

如何创建一个ImageButton (musicButton)来控制音乐的开启或关闭?

我有GamePrefs class,它有以下两种方法

代码语言:javascript
复制
public static void setBoolean(String name, boolean val) {
    prefs.setBoolean(name, val);
    prefs.flush();
}

public static boolean getBoolean(String name) {
    return prefs.getBoolean(name);
}

我有两张musicButton的图片

代码语言:javascript
复制
Texture t1 = new Texture("music");
Texture t2 = new Texture("music_off");
TextureRegion tr1 = new TextureRegion(t1);
TextureRegion tr2 = new TextureRegion(t2);

我知道我需要做一个ImageButtonStyle,但我有很多领域-- imageUpimageDowncheckedcheckedOver.我不知道该用哪两种

我需要它来回应触摸和改变当前的音乐设置为打开或关闭

就像这样:

GamePrefs.setBoolean("music", false)GamePrefs.setBoolean("music", true)

我会用getBoolean()来演奏音乐

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-06 17:07:31

为了创建这样的按钮,我使用了ImageButton.ImageButtonStyleupchecked属性:

代码语言:javascript
复制
public Button getMusicButton() {
    final Button button = new ImageButton(getMusicButtonStyle());
    button.setChecked(Prefs.isMusicOn());
    button.addListener(new ClickListener(){
        @Override
        public void clicked(InputEvent event, float x, float y) {
            MusicHandler.getInstance().toggleMusic();
        }
    });
    return button;
}

private ImageButton.ImageButtonStyle getMusicButtonStyle() {
    ImageButton.ImageButtonStyle style = new ImageButton.ImageButtonStyle();
    style.up = musicOffDrawable;
    style.checked = musicOnDrawable;
    return style;
}

对于音乐和声音,我使用了以下方法的MusicHandler类:

代码语言:javascript
复制
public void toggleMusic() {
    Prefs.toggleMusic();
    if (!Prefs.isMusicOn()) {
        music.stop();
    } else {
        music.play();
    }
}

最后,在Prefs类中有:

代码语言:javascript
复制
public static boolean isMusicOn() {
    return pref.getBoolean(MUSIC_ON);
}

public static void toggleMusic() {
    pref.putBoolean("music_on", !isMusicOn());
    pref.flush();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38804399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档