【问题标题】:ImageButton and PreferencesImageButton 和首选项
【发布时间】:2016-08-06 12:38:57
【问题描述】:

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

我有 GamePrefs class 有这两种方法

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 的图片

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() 播放音乐或不播放音乐

有什么帮助吗?

【问题讨论】:

    标签: java android libgdx scene2d


    【解决方案1】:

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

    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 使用此方法的课程:

    public void toggleMusic() {
        Prefs.toggleMusic();
        if (!Prefs.isMusicOn()) {
            music.stop();
        } else {
            music.play();
        }
    }
    

    最后在Prefs 类中有:

    public static boolean isMusicOn() {
        return pref.getBoolean(MUSIC_ON);
    }
    
    public static void toggleMusic() {
        pref.putBoolean("music_on", !isMusicOn());
        pref.flush();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 2013-10-02
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      相关资源
      最近更新 更多