欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實現(xiàn)進度條(ProgressBar)的功能與用法

 更新時間:2020年08月24日 08:38:01   作者:池頭樹  
這篇文章主要為大家詳細介紹了Android實現(xiàn)進度條(ProgressBar)的功能與用法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

進度條(ProgressBar)的功能與用法,供大家參考,具體內(nèi)容如下

進度條是UI界面中一種實用的UI組件,用于顯示一個耗時操作顯示出來的百分比,進度條可以動態(tài)的顯示進度,避免是用戶覺得系統(tǒng)長時間未反應,提高用戶的體驗。
下面程序簡單示范了進度條的用法,界面布局文件如下:

在layout下的activity_main中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:orientation="vertical"
  android:layout_height="match_parent"
  tools:context=".Main5Activity">
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"/>
<!--  定義大環(huán)形進度條-->
  <ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@android:style/Widget.ProgressBar.Large"/>
<!--  定義中等環(huán)形進度條-->
  <ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<!--  定義小環(huán)形進度條-->
  <ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@android:style/Widget.ProgressBar.Small"/>
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="任務完成進度條"
    android:textSize="24dp"/>
<!--  定義水平進度條-->
  <ProgressBar
    android:id="@+id/bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100"
    style="@android:style/Widget.ProgressBar.Horizontal"/>
<!--  定義水平進度條,改變軌道外觀-->
  <ProgressBar
    android:id="@+id/bar2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100"
    android:progressDrawable="@drawable/c4"
    style="@android:style/Widget.ProgressBar.Horizontal"/>
</LinearLayout>

在drawable下的文件下的my_bar中:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <!--    定義軌道的背景-->
  <item android:id="@android:id/background"
    android:drawable="@drawable/c4"/>
<!--  定義已完成部分的樣式-->
  <item android:id="@android:id/progress"
    android:drawable="@drawable/c2"/>
</layer-list>

在MainActivity.java中:

package com.example.test03;

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 java.lang.ref.WeakReference;

public class Main5Activity extends AppCompatActivity {
//  該模擬填充長度為100的數(shù)組
  private int[] data=new int[100];
  private int hasdata=0;
//  記錄ProgressBar的完成進度
  int status=0;
  private ProgressBar bar;
  private ProgressBar bar2;
  static class MyHandler extends Handler{
    private WeakReference<Main5Activity> activity;
    MyHandler(WeakReference<Main5Activity> activity){
      this.activity=activity;
    }

    @Override
    public void handleMessage(@NonNull Message msg) {
//      表明該消息是該程序發(fā)送的
      if (msg.what==0x111){
        activity.get().bar.setProgress(activity.get().status);
        activity.get().bar2.setProgress(activity.get().status);
      }
    }
  }
//  負責更新進度
  MyHandler myHandler=new MyHandler(new WeakReference<>(this));
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main5);
    bar=findViewById(R.id.bar);
    bar2=findViewById(R.id.bar2);
//    啟動線程在執(zhí)行進度
    new Thread(){
      @Override
      public void run() {
        while (status<100){
//          獲取耗時操作的完成百分比
          status=doWork();
//          發(fā)送消息
          myHandler.sendEmptyMessage(0x111);
        }
      }
    }.start();
  }
//  模擬耗時操作
  public int doWork() {
//    為數(shù)組元素賦值
    data[hasdata++] = (int) (Math.random() * 100);
    try {
      Thread.sleep(1000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    return hasdata;
  }
}

**以上就介紹到這里,上面簡單實現(xiàn)了一些進度條的方法。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android開發(fā)懸浮按鈕 Floating ActionButton的實現(xiàn)方法

    Android開發(fā)懸浮按鈕 Floating ActionButton的實現(xiàn)方法

    這篇文章主要介紹了Android開發(fā)懸浮按鈕 Floating ActionButton的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • Android如何獲取雙卡手機IMEI的方法示例

    Android如何獲取雙卡手機IMEI的方法示例

    這篇文章主要介紹了Android如何獲取雙卡手機IMEI的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Android系統(tǒng)聯(lián)系人全特效實現(xiàn)(上)分組導航和擠壓動畫(附源碼)

    Android系統(tǒng)聯(lián)系人全特效實現(xiàn)(上)分組導航和擠壓動畫(附源碼)

    本文將為大家講解下Android系統(tǒng)聯(lián)系人全特效實現(xiàn)之分組導航和擠壓動畫,具體實現(xiàn)及源代碼如下,感興趣的朋友可以參考下哈,希望對大家學習有所幫助
    2013-06-06
  • Android開發(fā)筆記SQLite優(yōu)化記住密碼功能

    Android開發(fā)筆記SQLite優(yōu)化記住密碼功能

    這篇文章主要為大家詳細介紹了Android開發(fā)筆記SQLite優(yōu)化記住密碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 理解Android中的自定義屬性

    理解Android中的自定義屬性

    這篇文章主要介紹了理解Android中的自定義屬性,在android相關應用開發(fā)過程中,固定的一些屬性可能滿足不了開發(fā)的需求,所以需要自定義控件與屬性,本文將以此問題進行詳細介紹,需要的朋友可以參考下
    2016-01-01
  • Retrofit 源碼分析初探

    Retrofit 源碼分析初探

    這篇文章主要介紹了Retrofit 源碼分析初探,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Android微信SDK實現(xiàn)分享

    Android微信SDK實現(xiàn)分享

    這篇文章主要介紹了Android微信SDK實現(xiàn)分享的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android  圖片的顏色處理實例代碼

    Android 圖片的顏色處理實例代碼

    本文主要介紹Android 圖片的顏色處理的知識,這里附上一個示例幫助大家學習理解這中實現(xiàn)方法,有需要的小伙伴可以參考下
    2016-09-09
  • Android 消息機制以及handler的內(nèi)存泄露

    Android 消息機制以及handler的內(nèi)存泄露

    這篇文章主要介紹了Android 消息機制以及handler的內(nèi)存泄露的相關資料,需要的朋友可以參考下
    2016-09-09
  • Android動畫之逐幀動畫(Frame Animation)基礎學習

    Android動畫之逐幀動畫(Frame Animation)基礎學習

    大家都知道逐幀動畫是一種常見的動畫形式,其原理是在“連續(xù)的關鍵幀”中分解動畫動作,也就是在時間軸的每幀上逐幀繪制不同的內(nèi)容,使其連續(xù)播放而成動畫。下面我們就來學習下Android中逐幀動畫的基礎知識,有需要的可以參考借鑒。
    2016-09-09

最新評論