我有一个音量控制滑块来控制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。我在这里做错了什么?
+0
'进度/ 10'是一个整数除法。改为尝试'progress/10f'。如果'currentPosition'是一个int,你可能会遇到另一个类似的问题。 –
+0
progress/10是一个整数除法,如果进度小于10,则返回0。后缀将转换为float 0.0。你需要执行一个浮点除法:volume =((float)progress)/ 10.0; –