iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
Mobile Development

[Android Studio & Spring boot 30天挑戰]系列 第 11

[Android Studio & Spring boot 30天挑戰] Day11- 摩斯密碼發送(中)

  • 分享至 

  • xImage
  •  

今天要繼續介紹我們的摩斯發送功能,接續昨天的內容接下來要講解如何調整發送速度!!

UI畫面

https://ithelp.ithome.com.tw/upload/images/20230819/201503698CmIoeQNt9.png

程式碼

右上角的按鈕功能是可以切換是要發送聲音還是用手電筒打光。

 /**change點擊*/
    private void changeBtClicked(View view) {
        isChange = !isChange;
        if(isChange) {
            change_button.setText("燈光");
        } else {
            change_button.setText("聲音");
        }
    }

下面的功能是調整發送速度。

/**設定seekBar*/
private void setupSeekBar() {
    speed_seekBar = (SeekBar) findViewById(R.id.post_speed_seekBar);
    speed_seekBar.setOnSeekBarChangeListener(speedSeekBarChangeListener());
    speed_seekBar.setProgress(morseCodeSharedPreferences.getSpeed());
}

接下來因為我希望要把速度存起來,所以我使用了 SharedPreferences

public class MorseCodeSharedPreferences {
private SharedPreferences sPref;

// 構造函數,接受一個上下文(Context)對象作為參數,用於初始化 SharedPreferences
public MorseCodeSharedPreferences(Context context){
    sPref = context.getSharedPreferences(String.valueOf(R.string.app_name), MODE_PRIVATE);
}

// 方法用於獲取存儲在 SharedPreferences 中的摩斯密碼速度設置
public int getSpeed() {
    return sPref.getInt("SPEED", 0);
}

// 方法用於設置摩斯密碼速度,接受一個速度值作為參數
public void setSpeed(int speed) {
    // 使用 SharedPreferences 編輯器(Editor)來設置速度並提交更改
    sPref.edit().putInt("SPEED", speed).apply();
}

}

接下來是使用 Seekbar 的監聽,當速度變化時就會到 Presenter 調整速度

  /**調整速度*/
    private SeekBar.OnSeekBarChangeListener speedSeekBarChangeListener() {
        return new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                morseCodeSharedPreferences.setSpeed(progress);
                morsePostPresenter.speedSeekBarChange(progress);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        };
    }

下一遍就會介紹如何去發送的了~~/images/emoticon/emoticon08.gif


上一篇
[Android Studio & Spring boot 30天挑戰] Day10- 摩斯密碼發送(上)
下一篇
[Android Studio & Spring boot 30天挑戰] Day12- 摩斯密碼發送(下)
系列文
[Android Studio & Spring boot 30天挑戰]30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言