我博客的相关说明
视频学习:B站:天哥在奔跑
基础代码:
<ProgressBar
android:id="@+id/Tes_PGB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
style="@style/Widget.AppCompat.ProgressBar"
android:max="100"
android:progress="10"
android:secondaryProgress="50"
/>
visibility标签
有三个属性:visible(可见)、gone(不可见且位置移除)、invisible(不可见但位置保留)。
style标签
设置ProgressBar的风格。
max标签
设置进度条的最大值。
progress标签
设置当前进度。
secondprogress标签
设置二级进度。
public class ProgressTest extends AppCompatActivity {
private ProgressBar pgb;
private Button PGB_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progress_test);
pgb = findViewById(R.id.Tes_PGB2);
PGB_btn = findViewById(R.id.PGB_BTN);
PGB_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.sendEmptyMessage(0);
}
});
}
Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if (pgb.getProgress() < 100){
handler.postDelayed(runnable,50);
}else {
Toast.makeText(getApplicationContext(),"加载完成",Toast.LENGTH_SHORT).show();
}
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
pgb.setProgress(pgb.getProgress()+1);
handler.sendEmptyMessage(0);
}
};
}
//视频内容,小白暂时看不懂,但能实现相应效果。
在drawable文件下新建File Root element
属性为:animated-rotate
相应代码块:
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/icon_user"
android:pivotX="50%"
android:pivotY="50%">
animated-rotate>
pivotX/pivotY标签:
设置图片旋转中心(锚点),这里表示设置图片长/宽的百分之50为旋转中心。
drawable标签:
这里是自己DIY的相应的图片的i名称。
<ProgressBar
android:id="@+id/Tes_PGB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/bg_progressbar"/>
indeterminateDrawable标签:
找到之前的drawable文件。
还可以通过定义style文件来实现DIY的ProgressBar!示例:其它控件也可以通过定义style文件来DIY自己的样式
示例过程:
·e1:打开values文件下styles.xml
文件
·e2:添加模块
相应代码:
<style name="MyProgressBar">
- "android:indeterminateDrawable"
>@drawable/bg_progressbar
style>
之后便可以在相应的控件下用
style
语句来设置相应的控件了:style="@style/MyProgressBar"
<ProgressBar
android:id="@+id/Tes_PGB"
style="@style/MyProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
在相应layout文件中添加一个Button控件,以便之后弹出Dialog
相应代码:
<Button
android:id="@+id/pgsb_btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ProgressDialog"
android:textSize="20sp"
android:textAllCaps="false"/>
在相应Activity文件中声明、找到控件。并设置点击事件:
ProgressDialog设置与属性和AlertDialog比较相似,视频:AlertDialog
import ...
public class ProgressTest extends AppCompatActivity {
private PGB_btn_Dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progress_test);
PGB_btn_Dialog1 = findViewById(R.id.pgsb_btn1);
PGB_btn_Dialog1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ProgressDialog progressDialog = new ProgressDialog(ProgressTest.this);
progressDialog.setTitle("提示:"); //设置Dialog标题
progressDialog.setMessage("正在加载"); //设置Dialog显示内容
//设置监听事件:当Dialog被意外取消时,弹出Toast
progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
Toast.makeText(ProgressTest.this,"cancel......",Toast.LENGTH_SHORT).show();
}
});
//设置属性:点击Dialog区域外Dialog不会退出
progressDialog.setCancelable(false);
//调用show()方法让Dialog显示出来
progressDialog.show();
}
});
}
}
这个样式和旋转样式大体相近,只用在代码里边设置相应的style就可以:
progressDialog2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
public void onClick(View v) {
ProgressDialog progressDialog = new ProgressDialog(ProgressTest.this);
progressDialog.setTitle("提示:"); //设置Dialog标题
progressDialog.setMessage("正在加载"); //设置Dialog显示内容
//设置属性:点击Dialog区域外Dialog不会退出
progressDialog.setCancelable(false);
//调用show()方法让Dialog显示出来
//##设置相应的style文件##
progressDialog2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.show();
}
当然这里的ProgressDialog并不会加载,实现相应效果可以看之前的Handler的实现方法。
同样ProgressDialog也可以和AlertDialog相同,可以添加相应的按钮,并且设置相关的点击事件。视频:AlertDialog