在本文中,我们将演示如何在Android Studio中创建一个圆形进度条,该进度条显示当前进度值,并且最初具有灰色背景色。进度栏的中心显示进度。下面给出了一个示例GIF,以了解我们将在本文中做些什么。注意,我们将使用Java语言实现该项目。
分步实施
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,您必须选择Java作为编程语言。
步骤2:创建一个新的可绘制资源文件
在drawable文件夹中创建一个名为circle.xml的新Drawable Resource File 。要创建一个新的Drawable Resource File,请导航到res> drawable并按照图像进行操作
如下:
单击Drawable Resource File,将打开一个新对话框,如下图所示。添加文件名,然后选择“根元素”作为图层列表,然后单击“确定” 。
步骤3:使用circle.xml文件
导航到res> drawable> circle.xml,然后将下面给出的代码添加到该文件中。在此文件中,我们将绘制一个显示进度的圆圈。注释已添加到代码中,以更好地理解。
XML
-
-
XML
XML
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private int progress = 0;
Button buttonIncrement;
Button buttonDecrement;
ProgressBar progressBar;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonDecrement = (Button) findViewById(R.id.button_decr);
buttonIncrement = (Button) findViewById(R.id.button_incr);
progressBar = (ProgressBar) findViewById(R.id.progress_bar);
textView = (TextView) findViewById(R.id.text_view_progress);
// when clicked on buttonIncrement progress in incresed by 10%
buttonIncrement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if progress is less than or equal
// to 90% then only it can be increased
if (progress <= 90) {
progress += 10;
updateProgressBar();
}
}
});
// when clicked on buttonIncrement progress in decreased by 10%
buttonDecrement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// If progress is greater than
// 10% then only it can be decreased
if (progress >= 10) {
progress -= 10;
updateProgressBar();
}
}
});
}
// updateProgressBar() method sets
// the progress of ProgressBar in text
private void updateProgressBar() {
progressBar.setProgress(progress);
textView.setText(String.valueOf(progress));
}
}
步骤4:将样式添加到ProgressBar
导航到res> layout> theme.xml并将下面给出的代码添加到该文件。我们在此文件中添加了新样式。注释已正确添加,以便清晰理解。
XML格式
步骤5:使用activity_main.xml文件
转到res> layout> activity_main.xml,然后将下面给出的代码添加到该文件中。在这里,我们添加了一个显示进度的ProgressBar ,并添加了一个TextView以显示进度的百分比。还添加了两个按钮来增加或减少进度。必需的注释已添加到代码中。
XML格式
步骤6:使用MainActivity。 Java文件
转到MainActivity。 Java文件,并将下面给出的代码添加到该文件中。 ProgressBar属性在此处实现。注释已添加到代码中,以便快速清晰地理解。
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private int progress = 0;
Button buttonIncrement;
Button buttonDecrement;
ProgressBar progressBar;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonDecrement = (Button) findViewById(R.id.button_decr);
buttonIncrement = (Button) findViewById(R.id.button_incr);
progressBar = (ProgressBar) findViewById(R.id.progress_bar);
textView = (TextView) findViewById(R.id.text_view_progress);
// when clicked on buttonIncrement progress in incresed by 10%
buttonIncrement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if progress is less than or equal
// to 90% then only it can be increased
if (progress <= 90) {
progress += 10;
updateProgressBar();
}
}
});
// when clicked on buttonIncrement progress in decreased by 10%
buttonDecrement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// If progress is greater than
// 10% then only it can be decreased
if (progress >= 10) {
progress -= 10;
updateProgressBar();
}
}
});
}
// updateProgressBar() method sets
// the progress of ProgressBar in text
private void updateProgressBar() {
progressBar.setProgress(progress);
textView.setText(String.valueOf(progress));
}
}
输出: