Tôi tìm thấy giải pháp sau đây để làm cho thanh tìm kiếm di chuyển trơn tru, nhưng vẫn chụp được một dải giá trị giới hạn. Giả sử bạn có các quan điểm sau đây trong cách bố trí của bạn:
<SeekBar
android:id="@+id/sldProgress"
style="@style/MySliderStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50" />
<TextView
android:id="@+id/lblProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5" />
Bạn có thể sử dụng đoạn mã sau trong hoạt động của bạn (thay đổi giá trị của android: tối đa trong xml trên, và các yếu tố êm ái trong các mã dưới đây theo của bạn nhu cầu - giá trị cao hơn = mượt):
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sliderListener sldListener = new sliderListener();
SeekBar sldProgress = (SeekBar) findViewById(R.id.sldProgress);
sldProgress.setOnSeekBarChangeListener(sldListener);
}
private class sliderListener implements OnSeekBarChangeListener {
private int smoothnessFactor = 10;
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progress = Math.round(progress/smoothnessFactor);
TextView lblProgress = (TextView) findViewById(R.id.lblProgress);
lblProgress.setText(String.valueOf(progress));
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onStopTrackingTouch(SeekBar seekBar) {
seekBar.setProgress(Math.round((seekBar.getProgress() + (smoothnessFactor/2))/smoothnessFactor) * smoothnessFactor);
}
}
}
+1 Bạn có thể thêm mã nguồn để bạn sẽ giúp khách truy cập trong tương lai. –
Tôi sẽ, tôi sẽ đăng nó ngay khi tôi đẩy phiên bản mới nhất của ứng dụng của tôi. Tôi cho rằng mã nguồn mở của ứng dụng là –
Như đã hứa - https://github.com/kennydude/Speaker/blob/master/src/me/kennydude/speaker/SmoothSeekBar.java vị trí đó sẽ được cập nhật dưới dạng cập nhật mã –