我有一個音量控制滑塊來控制Android中音頻文件的播放音量。Java-非零整數除以10等於0.0浮點?
vSlider=(SeekBar) findViewById(R.id.seekBar2);
vSlider.setMax(10);
if(mediaPlayer.isPlaying()){
isPlaying=true;
try {
currentPosition = mediaPlayer
.getCurrentPosition();
double seconds=currentPosition/1000;
int time= (int) Math.round(seconds);
String timeS=Integer.toString(time);
timer.setText(timeS+"s");
Log.d("position",timeS);
fSlider.setProgress(currentPosition);
} catch (Exception e) {
}
vSlider.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
float volume=progress/10;
Log.d("Progress", String.valueOf(progress));
Log.d("Volume",String.valueOf(volume));
mediaPlayer.setVolume(volume, volume);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) { }
@Override
public void onStopTrackingTouch(SeekBar seekBar) { }
});
正在正確檢測滑塊進度的int值,但浮動量總是變爲0.0。我在這裏做錯了什麼?
'進度/ 10'是一個整數除法。改爲嘗試'progress/10f'。如果'currentPosition'是一個int,你可能會遇到另一個類似的問題。 – assylias
progress/10是一個整數除法,如果進度小於10,則返回0。後綴將轉換爲float 0.0。你需要執行一個浮點除法:volume =((float)progress)/ 10.0; – Stefan