編輯:關於Android編程
AndroidProgressLayout實現為界面添加圓形進度條。調用setprogress()方法顯示和隱藏進度條
在Android的開發中,往往有這種需求,比如一個耗時的操作,聯網獲取網絡圖片、內容,數據庫耗時讀寫等等,在此耗時操作過程中,開發者也許不希望用戶再進行其他操作(其他操作可能會引起邏輯混亂),而此時需要給用戶一個額外的加載頁面遮擋住主邏輯代碼的運行,待主頁面的耗時操作完成後,自動消失這樣加載過度頁面,恢復出正常應該顯示的頁面。
舉個實際的例子,如代碼使用Android WebView打開一個網頁鏈接試圖加載某個網站,但網絡質量不佳,需要耗時很久,那麼在這個過程中,較好的用戶體驗做法是:給用戶一個加載進度頁面,遮擋住WebView。當加載的內容成功後在完全切換回正常的邏輯頁面。
Android AndroidProgressLayout實現了這樣的功能,Android AndroidProgressLayout在github上的項目主頁是:https://github.com/antonkrasov/AndroidProgressLayout
測試代碼如下:
activity_main.xml:
<com.github.androidprogresslayout.ProgressLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:progressLayout="http://schemas.android.com/apk/res-auto" android:id="@+id/progressLayout" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="sp" android:layout_centerInParent="true" /> </com.github.androidprogresslayout.ProgressLayout>
MainActivity.java:
package com.zzw.testandroidprogresslayout; import com.github.androidprogresslayout.ProgressLayout; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.animation.Animation; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ProgressLayout progressLayout = (ProgressLayout) findViewById(R.id.progressLayout); final TextView textView = (TextView) findViewById(R.id.textView); Handler handler = new Handler() { @Override public void handleMessage(Message msg) { textView.setText("測試完成"); // 切換回正常顯示頁面 progressLayout.showContent(); } }; // 開始加載... 假設從這裡開始一個耗時的操作將開始啟動,在此啟動過程中,開發者希望用戶稍事休息,等待。。。 progressLayout.showProgress(); // 假設有一個耗時的加載業務邏輯,需要秒完成。 handler.sendEmptyMessageDelayed(, ); } }
以上內容是小編給大家分享的關於加載頁面遮擋耗時操作任務頁面--第三方開源之AndroidProgressLayout的全部敘述,希望大家喜歡。
直接使用線程在Android開發的時候,當我們需要完成一個耗時操作的時候,通常會新建一個子線程出來,例如如下代碼new Thread(new Runnable() {
1. 設計物流配送流程 物流配送流程基於組任務進行任務分配、使用排他網關,分支選擇使用流程變量實現Activiti圖形界面中:Process的Id值 對應
微博開發遇到很多bug 總結一下 我遇到BUG (1) :sso package or singn error 出現這個問題 是我沒有在 博客中填寫正確的包
EditView類繼承自TextView類,EditView與TextView最大的不同就是用戶可以對EditView控件進行編輯,