一、继承
java.lang.Object
↳ android.view.View
↳ android.widget.ProgressBar
二、XML属性
- android:animationResolution=“100” 动画帧之间的超时(以毫秒为单位)
- android:indeterminate=“true” 是否启动不确定模式
- android:indeterminateBehavior=“cycle” 设置当进度达到最大值时,不确定模式的行为方式
- android:indeterminateDrawable=“@color/teal_200” 设置不确定模式的可绘制对象
- android:indeterminateDuration=“100” 不确定动画的持续时间
- android:indeterminateOnly=“true” 限制为仅不确定模式
- android:indeterminateTint=“@color/black” 色调应用于不确定进度指示器
- android:indeterminateTintMode=“add” 用于应用不确定进度指示器色调的混合模式
- android:interpolator=“xx” 设置不确定动画的加速度曲线。默认为线性
- android:max=“100” 设置最大值
- android:maxHeight=“” 为该视图提供最大高度的可选参数
- android:maxWidth=“” 为该视图提供最大宽度的可选参数
- android:min=“” 设置最小值
- android:minHeight=“” 为该视图提供最小高度的可选参数
- android:minWidth=“” 为该视图提供最小宽度的可选参数
- android:mirrorForRtl=“true” 设置RTL模式下是否需要镜像关联的绘图。默认值为false
- android:progress=“30” 定义默认进度值,介于 0 和 max 之间
- android:progressBackgroundTint=“@color/teal_700” 设置进度指示器背景的色调
- android:progressBackgroundTintMode=“add” 设置进度指示器背景色调的混合模式
- android:progressDrawable=“” 绘制进度模式
- android:progressTint=“” 设置进度指示器色调
- android:progressTintMode=“add” 设置进度指示器色调的混合模式
- android:secondaryProgress=""定义第二进度值,介于0和最大值之间。此进度在主要进展和背景。它非常适合媒体场景,例如显示缓冲进度,而默认进度显示播放进度
- android:secondaryProgressTint=“” 色调以应用于辅助进度指示器
- android:secondaryProgressTintMode=“add” 设置辅助进度指示器色调的混合模式
三、简单使用
public class MainActivity extends AppCompatActivity {
private ProgressBar mProgressBar;
private Button btn_reduce, btn_add;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initClick();
}
private void initView() {
mProgressBar = findViewById(R.id.progressBar);
btn_reduce = findViewById(R.id.btn_reduce);
btn_add = findViewById(R.id.btn_add);
}
private void initClick() {
btn_reduce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int progress = mProgressBar.getProgress();
if (progress > 0) {
progress -= 10;
mProgressBar.setProgress(progress);
}
}
});
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int progress = mProgressBar.getProgress();
if (progress < 110) {
progress += 10;
mProgressBar.setProgress(progress);
}
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<ProgressBar
android:id="@+id/progressBar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="500dp"
android:layout_height="30dp"
android:max="100"
android:progress="30" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="60dp"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/btn_reduce"
android:layout_width="80dp"
android:layout_height="match_parent"
android:gravity="center"
android:text="-"
android:textSize="45sp" />
<Button
android:id="@+id/btn_add"
android:layout_width="80dp"
android:layout_height="match_parent"
android:layout_marginLeft="60dp"
android:gravity="center"
android:text="+"
android:textSize="40sp" />
</LinearLayout>
</LinearLayout>