一、ProgressBar进度条介绍
ProgressBar 是 Android 中的一个进度条控件,用于显示正在进行的任务的进度。它可以以水平或圆形的形式展示进度,并提供了多种样式和属性来满足不同的需求。
相关属性:
- android:progress:设置进度条的当前进度值。
- android:max:设置进度条的最大值。
- android:indeterminate:设置进度条是否为不确定模式。
- android:progressDrawable:设置进度条的进度条 Drawable,可以是一个 Drawable 资源。
- android:indeterminateDrawable:设置进度条的不确定模式的 Drawable,可以是一个 Drawable 资源。
- android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!
常用方法:
- setProgress(int progress):设置进度条的当前进度值。
- setMax(int max):设置进度条的最大值。
- getProgress():获取当前进度条的进度值。
- getMax():获取进度条的最大值。
- setIndeterminate(boolean indeterminate):设置进度条是否为不确定模式,即不显示具体进度而只显示一个动画效果。
- isIndeterminate():判断进度条是否为不确定模式。
- setVisibility(int visibility):设置进度条的可见性,可以是 VISIBLE、INVISIBLE 或 GONE。
- setProgressDrawable(Drawable drawable):设置进度条的进度条 Drawable,可以是一个 Drawable 对象或资源 ID。
- setIndeterminateDrawable(Drawable drawable):设置进度条的不确定模式的 Drawable,可以是一个 Drawable 对象或资源 ID。
二、SeekBar 介绍:
SeekBar 是 Android 中的一个可滑动条控件,用于允许用户通过滑动来选择一个数值或调整某种设置。它通常用于音量控制、亮度调节、进度选择等场景。SeekBar 继承自 ProgressBar 类。
常用方法:
以下是 SeekBar 常用的方法:
- setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener listener):设置 SeekBar 的监听器,用于监听滑动事件和数值变化事件。
- setMax(int max):设置 SeekBar 的最大值。
- getMax():获取 SeekBar 的最大值。
- setProgress(int progress):设置 SeekBar 的当前进度值。
- getProgress():获取 SeekBar 的当前进度值。
- setThumb(Drawable thumb):设置滑块(Thumb)的图像,可以是一个 Drawable 对象或资源 ID。
- setThumbOffset(int thumbOffset):设置滑块的偏移量,可调整滑块的位置。
- getThumb():获取当前 SeekBar 使用的滑块图像。
- getThumbOffset():获取当前滑块的偏移量。
相关属性:
以下是 SeekBar 常用的属性:
- android:max:设置 SeekBar 的最大值。
- android:progress:设置 SeekBar 的当前进度值。
- android:thumb:设置滑块(Thumb)的图像,可以是一个 Drawable 资源。
- android:thumbOffset:设置滑块的偏移量。
- android:progressDrawable:设置 SeekBar 的进度条 Drawable,可以是一个 Drawable 资源。
三、例子
运行结果:
MainActivity :
public class MainActivity extends AppCompatActivity { private Button add,minus; ProgressBar mProgressBar; SeekBar mSeekBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); add = findViewById(R.id.add); mProgressBar = findViewById(R.id.bar); minus = findViewById(R.id.minus); mSeekBar = findViewById(R.id.seekbar); add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int curProgress = mProgressBar.getProgress(); int curSeekProgress = mSeekBar.getProgress(); mSeekBar.setProgress(curSeekProgress+10); mProgressBar.setProgress(curProgress+10); } }); minus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int curProgress = mProgressBar.getProgress(); mProgressBar.setProgress(curProgress-10); int curSeekProgress = mSeekBar.getProgress(); mSeekBar.setProgress(curSeekProgress-10); } }); mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { Toast.makeText(MainActivity.this, "进度条进度改变!", Toast.LENGTH_SHORT).show(); } @Override public void onStartTrackingTouch(SeekBar seekBar) { Toast.makeText(MainActivity.this, "进度条被手指触摸!", Toast.LENGTH_SHORT).show(); } @Override public void onStopTrackingTouch(SeekBar seekBar) { Toast.makeText(MainActivity.this, "手指离开进度条!", Toast.LENGTH_SHORT).show(); } }); } }
activity_main: