推荐新手向学习视频:B站https://www.bilibili.com/vIDeo/av38409964点我传送
3-3 Progressbar & ProgressDialog(加载进度条、转圈圈)
今天下了一个叫ScreenToGif的软件,可以截取动图了,啦啦啦
一些未展示属性
androID:secondaryProgress=“30” 设置二级进度条为30androID:indeterminateDrawable="@drawable/bg_progress" 设置自定义样式activity_progress.xml文件
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical" androID:gravity="center_horizontal" androID:padding="15dp"> <Progressbar androID:ID="@+ID/pb1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" /> <Progressbar androID:ID="@+ID/pb2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_margintop="10dp"/> <Progressbar androID:ID="@+ID/pb3" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_margintop="10dp" androID:max="100" androID:progress="10" androID:secondaryProgress="30"/> <Progressbar androID:ID="@+ID/pb4" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_margintop="10dp" androID:max="100" androID:progress="10" androID:secondaryProgress="30"/> <button androID:ID="@+ID/btn_start" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:text="模拟进度条" androID:layout_margintop="10dp"/> <Progressbar androID:ID="@+ID/pb5" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" 自定义效果 androID:layout_margintop="10dp"/> <button androID:ID="@+ID/btn_progress_dialog1" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:text="ProgressDialog1" androID:textAllCaps="false" androID:layout_margintop="10dp"/> <button androID:ID="@+ID/btn_progress_dialog2" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:text="ProgressDialog2" androID:textAllCaps="false" androID:layout_margintop="10dp"/> </linearLayout>
效果
drawable下的自定义布局bg_progress.xml文件
<?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%"> <!--两个50%确定图片的旋转中心--> </animated-rotate>
styles.xml文件里添加自定义样式
<style name="MyProgressbar"> <item name="androID:indeterminateDrawable">@drawable/bg_progress</item> </style>
ProgressActivity.java文件
package com.ylw.helloworld; import androIDx.annotation.NonNull; import androIDx.appcompat.app.AppCompatActivity; import androID.app.ProgressDialog; import androID.content.DialogInterface; import androID.os.Bundle; import androID.os.Handler; import androID.os.Message; import androID.vIEw.VIEw; import androID.Widget.button; import androID.Widget.Progressbar; import com.ylw.helloworld.util.ToastUtil; public class ProgressActivity extends AppCompatActivity { private Progressbar mPb3; private button mBtnStart,mBtnProgressDialog1,mBtnProgressDialog2; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_progress); mPb3 = findVIEwByID(R.ID.pb3); mBtnStart = findVIEwByID(R.ID.btn_start); mBtnProgressDialog1 = findVIEwByID(R.ID.btn_progress_dialog1); mBtnProgressDialog2 = findVIEwByID(R.ID.btn_progress_dialog2); mPb3.setProgress(30); //设置进度条到30 mBtnStart.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { handler.sendEmptyMessage(0); } }); mBtnProgressDialog1.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { //虽然标了中划线但还是可以用的 ProgressDialog progressDialog = new ProgressDialog(ProgressActivity.this); progressDialog.setTitle("提示"); progressDialog.setMessage("正在加载"); progressDialog.setonCancelListener(new DialogInterface.OnCancelListener() { //监听取消 @OverrIDe public voID onCancel(DialogInterface dialog) { ToastUtil.showMsg(ProgressActivity.this,"cancel..."); } }); progressDialog.setCancelable(false); //设置不可以被取消 progressDialog.show(); } }); mBtnProgressDialog2.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { //虽然标了中划线但还是可以用的 ProgressDialog progressDialog = new ProgressDialog(ProgressActivity.this); progressDialog.setProgressstyle(ProgressDialog.STYLE_HORIZONTAL); //设置样式为进度条 progressDialog.setTitle("提示"); progressDialog.setMessage("正在下载..."); //设置按钮和点击事件 progressDialog.setbutton(DialogInterface.button_POSITIVE, "等一会", new DialogInterface.OnClickListener() { @OverrIDe public voID onClick(DialogInterface dialog, int which) { // } }); progressDialog.show(); } }); } Handler handler = new Handler(){ //容器 @OverrIDe public voID handleMessage(@NonNull Message msg) { super.handleMessage(msg); if (mPb3.getProgress()<100){ //如果进度小于100 handler.postDelayed(runnable,500); //延迟500毫秒发出消息 }else{ ToastUtil.showMsg(ProgressActivity.this,"加载完成"); } } }; Runnable runnable = new Runnable() { //线程 @OverrIDe public voID run() { mPb3.setProgress(mPb3.getProgress()+5); //把当前进度+5 handler.sendEmptyMessage(0); } }; }
效果(今天下了一个叫ScreenToGif的软件,可以截取动图了,啦啦啦)
模拟进度条效果
ProgressDialog1效果
ProgressDialog2效果
以上是内存溢出为你收集整理的Android学习笔记(Android Studio)3-3(ProgressBar & ProgressDialog)(加载进度条、转圈圈)UI组件之d出组件全部内容,希望文章能够帮你解决Android学习笔记(Android Studio)3-3(ProgressBar & ProgressDialog)(加载进度条、转圈圈)UI组件之d出组件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)