Android原生控件 -- ProgressBar(进度加载) & ProgressDialog(进度展示对话框)
⒈ProgressBar使用
默认
<ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="@android:style/Widget.Material.ProgressBar"/>
设置是否可见
<ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="@android:style/Widget.Material.ProgressBar" android:visibility="visible"/>
水平的进度条
<ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Horizontal"/>
添加总进度、当前进度及二级进度(给人一种缓存的感觉)
<ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Horizontal" android:max="100" android:progress="10" android:secondaryProgress="30"/>
模拟进度
package cn.coreqi.helloworld2; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.ProgressBar; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private ProgressBar mPb1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPb1 = findViewById(R.id.pb1); handler.sendEmptyMessage(0); } Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if(mPb1.getProgress() < 100){ handler.postDelayed(runnable,500); }else { Toast.makeText(getApplicationContext(),"加载完成",Toast.LENGTH_LONG).show(); } } }; Runnable runnable = new Runnable() { @Override public void run() { mPb1.setProgress(mPb1.getProgress() + 5); } }; }
设置自定义进度图片旋转
<?xml version="1.0" encoding="utf-8"?> <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/icon_progress" android:pivotX="50%" android:pivotY="50%"> </animated-rotate>
<ProgressBar android:id="@+id/pb1" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/bg_progress"/>
⒉ProgressDialog使用
普通用法
ProgressDialog progressDialog = new ProgressDialog(getApplicationContext()); progressDialog.setTitle("提示"); progressDialog.setMessage("正在加载"); progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { } }); //progressDialog.setCancelable(false); progressDialog.show();
进度条用法
ProgressDialog progressDialog = new ProgressDialog(getApplicationContext()); progressDialog.setTitle("提示"); progressDialog.setMessage("正在下载"); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { } }); //progressDialog.setCancelable(false); progressDialog.show();
添加按钮
ProgressDialog progressDialog = new ProgressDialog(getApplicationContext()); progressDialog.setTitle("提示"); progressDialog.setMessage("正在下载"); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { } }); progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "后台进行", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); //progressDialog.setCancelable(false); progressDialog.show();
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/12162090.html
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
分类:
Android
如果文章内容对您有所帮助,欢迎赞赏.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!