700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android开发之ProgressBar控件(实现加载动画与条形进度条)

Android开发之ProgressBar控件(实现加载动画与条形进度条)

时间:2021-09-29 07:55:36

相关推荐

Android开发之ProgressBar控件(实现加载动画与条形进度条)

文章目录

常用属性基本框架按钮控制条形进度条

常用属性

android:max进度条的最大值

android:progress进度条已完成进度值

android:indeterminate如果设置为true,则进度条不精确显示进度

style="?android:attr/progressBarStyleHorizontal"水平进度条

基本框架

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

运行之后就可以得到一个“加载中”的圆圈进度条:

按钮控制

添加一个按钮与其点击事件,给进度条取个id,方便在java代码中获取。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ProgressBarandroid:id="@+id/pb"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Buttonandroid:text="显示/隐藏进度条"android:onClick="myClick"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

在java代码中获取进度条的id,并编写点击事件:

package com.example.myprogressbar;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ProgressBar;public class MainActivity extends AppCompatActivity {private ProgressBar mypb;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mypb=findViewById(R.id.pb);}public void myClick(View view) {if(mypb.getVisibility()==View.GONE){mypb.setVisibility(View.VISIBLE);}else{mypb.setVisibility(View.GONE);}}}

代码的意思是,如果进度条不可见,则令其可见;否则令其不可见。可在虚拟机上看到效果如下:

通过点击按钮,就可以控制进度条是否显示。

这样的设计在加载网页的时候也是类似的,不过判断条件就变成了数据是否加载完成。

条形进度条

想要一个条形的进度条,我们可以用安卓预设的style。

<ProgressBarandroid:id="@+id/pb2"style="?android:attr/progressBarStyleHorizontal"android:max="100"android:layout_width="300dp"android:layout_height="wrap_content"/>

设置该进度条的最大值为100,其进度可以在android:progress中查看。在这里,我们用按钮点击来模拟加载数据,控制进度条的值。

<Buttonandroid:text="点击为进度条助力"android:onClick="load"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

public void load(View view) {int progress=mypb2.getProgress();progress+=10;mypb2.setProgress(progress);}

每次点击增加110\frac{1}{10}101​的进度,效果如下:

如果将android:indeterminate设置为true,则不显示进度,进度条就变成加载动画的效果。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。