这篇文章主要为大家展示了“在Android开发中如何实现好看的进度条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Android开发中如何实现好看的进度条”这篇文章吧。
<?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:background="#ffffff" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/textView17" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:textStyle="bold" android:textAlignment="center" android:text="\u00A9 itinsidenews.com" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Determinate" /> <ProgressBar android:id="@+id/progressDeterminate" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="false" android:max="100" android:progress="10" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Indeterminate" /> <ProgressBar android:id="@+id/progressIndeterminate" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="true" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Buffer" /> <ProgressBar android:id="@+id/progressBuffered" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="false" android:max="100" android:progress="10" android:secondaryProgress="20" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Indeterminate and Determinate" /> <ProgressBar android:id="@+id/progressIndeterminateDeterminate" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="false" android:max="100" android:progress="20" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="15dp" android:text="Indeterminate" /> <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="true" android:progressDrawable="@drawable/circular_progress_bar" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="10dp" android:layout_weight="1" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="15dp" android:text="Determine" /> <ProgressBar android:id="@+id/progressIndeterminateCircular" android:layout_width="?attr/actionBarSize" android:layout_height="?attr/actionBarSize" android:background="@drawable/circle_shape" android:indeterminate="false" android:max="100" android:progress="0" android:progressDrawable="@drawable/circular_progress_bar" /> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout>
在MainActivity.java文件中,我们的第一步是初始化所有的进度条视图,然后编写三个void类型的函数,分别为每个进度条编写代码。
我们在每个函数中使用了一个处理程序。在Android中,我们不能在主线程上运行长期任务;这就是我们使用处理程序的原因。处理程序允许从其他后台线程与 UI 线程进行通信。
package com.progressbar.example.mainactivity;import android.os.Bundle; import android.os.Handler; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.widget.ProgressBar; import android.widget.Toast; import com.progressbar.example.R; import com.progressbar.example.utils.Tools; public class MainActivity extends AppCompatActivity { private ProgressBar progressDeterminate; private ProgressBar progressIndeterminateCircular; private ProgressBar progressBuffered; private ProgressBar progressIndeterminateDeterminate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initComponent(); } private void initComponent() { progressDeterminate = (ProgressBar) findViewById(R.id.progressDeterminate); progressIndeterminateCircular = (ProgressBar) findViewById(R.id.progressIndeterminateCircular); progressBuffered = (ProgressBar) findViewById(R.id.progressBuffered); progressIndeterminateDeterminate = (ProgressBar) findViewById(R.id.progressIndeterminateDeterminate); startDeterminateProgress(); startBufferedProgress(); startBufferedSecondaryProgress(); startIndeterminateDeterminateProgress(); startDeterminateCircularProgress(); } private void startDeterminateProgress() { final Handler mHandler = new Handler(); Runnable runnable = new Runnable() { public void run() { int progress = progressDeterminate.getProgress() + 10; progressDeterminate.setProgress(progress); if (progress > 100) { progressDeterminate.setProgress(0); } mHandler.postDelayed(this, 1000);
以上是“在Android开发中如何实现好看的进度条”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。