当前位置:   article > 正文

安卓进度条:ProgressBar和Seekbar_android进度条控件

android进度条控件

一、ProgressBar进度条介绍

   ProgressBarAndroid 中的一个进度条控件,用于显示正在进行的任务的进度。它可以以水平或圆形的形式展示进度,并提供了多种样式和属性来满足不同的需求。

相关属性:

  1. android:progress:设置进度条的当前进度值。
  2. android:max:设置进度条的最大值。
  3. android:indeterminate:设置进度条是否为不确定模式。
  4. android:progressDrawable:设置进度条的进度条 Drawable,可以是一个 Drawable 资源。
  5. android:indeterminateDrawable:设置进度条的不确定模式的 Drawable,可以是一个 Drawable 资源。
  6. android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!

常用方法: 

  1. setProgress(int progress):设置进度条的当前进度值。
  2. setMax(int max):设置进度条的最大值。
  3. getProgress():获取当前进度条的进度值。
  4. getMax():获取进度条的最大值。
  5. setIndeterminate(boolean indeterminate):设置进度条是否为不确定模式,即不显示具体进度而只显示一个动画效果。
  6. isIndeterminate():判断进度条是否为不确定模式。
  7. setVisibility(int visibility):设置进度条的可见性,可以是 VISIBLEINVISIBLE 或 GONE
  8. setProgressDrawable(Drawable drawable):设置进度条的进度条 Drawable,可以是一个 Drawable 对象或资源 ID。
  9. setIndeterminateDrawable(Drawable drawable):设置进度条的不确定模式的 Drawable,可以是一个 Drawable 对象或资源 ID。

二、SeekBar 介绍:

  SeekBar 是 Android 中的一个可滑动条控件,用于允许用户通过滑动来选择一个数值或调整某种设置。它通常用于音量控制、亮度调节、进度选择等场景。SeekBar 继承自 ProgressBar 类。

常用方法:

以下是 SeekBar 常用的方法:

  1. setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener listener):设置 SeekBar 的监听器,用于监听滑动事件和数值变化事件。
  2. setMax(int max):设置 SeekBar 的最大值。
  3. getMax():获取 SeekBar 的最大值。
  4. setProgress(int progress):设置 SeekBar 的当前进度值。
  5. getProgress():获取 SeekBar 的当前进度值。
  6. setThumb(Drawable thumb):设置滑块(Thumb)的图像,可以是一个 Drawable 对象或资源 ID。
  7. setThumbOffset(int thumbOffset):设置滑块的偏移量,可调整滑块的位置。
  8. getThumb():获取当前 SeekBar 使用的滑块图像。
  9. getThumbOffset():获取当前滑块的偏移量。

相关属性:

以下是 SeekBar 常用的属性:

  1. android:max:设置 SeekBar 的最大值。
  2. android:progress:设置 SeekBar 的当前进度值。
  3. android:thumb:设置滑块(Thumb)的图像,可以是一个 Drawable 资源。
  4. android:thumbOffset:设置滑块的偏移量。
  5. android:progressDrawable:设置 SeekBar 的进度条 Drawable,可以是一个 Drawable 资源。 

三、例子 

 运行结果:

MainActivity : 

  1. public class MainActivity extends AppCompatActivity {
  2. private Button add,minus;
  3. ProgressBar mProgressBar;
  4. SeekBar mSeekBar;
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9. add = findViewById(R.id.add);
  10. mProgressBar = findViewById(R.id.bar);
  11. minus = findViewById(R.id.minus);
  12. mSeekBar = findViewById(R.id.seekbar);
  13. add.setOnClickListener(new View.OnClickListener() {
  14. @Override
  15. public void onClick(View v) {
  16. int curProgress = mProgressBar.getProgress();
  17. int curSeekProgress = mSeekBar.getProgress();
  18. mSeekBar.setProgress(curSeekProgress+10);
  19. mProgressBar.setProgress(curProgress+10);
  20. }
  21. });
  22. minus.setOnClickListener(new View.OnClickListener() {
  23. @Override
  24. public void onClick(View v) {
  25. int curProgress = mProgressBar.getProgress();
  26. mProgressBar.setProgress(curProgress-10);
  27. int curSeekProgress = mSeekBar.getProgress();
  28. mSeekBar.setProgress(curSeekProgress-10);
  29. }
  30. });
  31. mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
  32. @Override
  33. public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
  34. Toast.makeText(MainActivity.this, "进度条进度改变!", Toast.LENGTH_SHORT).show();
  35. }
  36. @Override
  37. public void onStartTrackingTouch(SeekBar seekBar) {
  38. Toast.makeText(MainActivity.this, "进度条被手指触摸!", Toast.LENGTH_SHORT).show();
  39. }
  40. @Override
  41. public void onStopTrackingTouch(SeekBar seekBar) {
  42. Toast.makeText(MainActivity.this, "手指离开进度条!", Toast.LENGTH_SHORT).show();
  43. }
  44. });
  45. }
  46. }

 activity_main:

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical"
  6. tools:context=".MainActivity">
  7. <ProgressBar
  8. android:id="@+id/bar"
  9. android:gravity="center"
  10. style="@android:style/Widget.ProgressBar.Horizontal"
  11. android:layout_width="match_parent"
  12. android:layout_height="wrap_content"
  13. android:max="100"
  14. android:min="0"
  15. android:progress="18" />
  16. <SeekBar
  17. android:id="@+id/seekbar"
  18. android:layout_width="match_parent"
  19. android:layout_height="wrap_content"
  20. android:max="100"
  21. android:min="0"/>
  22. <Button
  23. android:id="@+id/add"
  24. android:layout_width="wrap_content"
  25. android:layout_height="50dp"
  26. android:text="增加进度"
  27. android:layout_gravity="center"
  28. />
  29. <Button
  30. android:id="@+id/minus"
  31. android:layout_width="wrap_content"
  32. android:layout_height="50dp"
  33. android:text="减少进度"
  34. android:layout_gravity="center"
  35. />
  36. </LinearLayout>

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/103710?site
推荐阅读
相关标签
  

闽ICP备14008679号