編輯:關於android開發
在Android的開發中,往往有這種需求,比如一個耗時的操作,聯網獲取網絡圖片、內容,數據庫耗時讀寫等等,在此耗時操作過程中,開發者也許不希望用戶再進行其他操作(其他操作可能會引起邏輯混亂),而此時需要給用戶一個額外的加載頁面遮擋住主邏輯代碼的運行,待主頁面的耗時操作完成後,自動消失這樣加載過度頁面,恢復出正常應該顯示的頁面。
舉個實際的例子,如代碼使用Android WebView打開一個網頁鏈接試圖加載某個網站,但網絡質量不佳,需要耗時很久,那麼在這個過程中,較好的用戶體驗做法是:給用戶一個加載進度頁面,遮擋住WebView。當加載的內容成功後在完全切換回正常的邏輯頁面。
Android AndroidProgressLayout實現了這樣的功能,Android AndroidProgressLayout在github上的項目主頁是:https://github.com/antonkrasov/AndroidProgressLayout
測試代碼如下:
activity_main.xml:
1 <com.github.androidprogresslayout.ProgressLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:progressLayout="http://schemas.android.com/apk/res-auto" 3 android:id="@+id/progressLayout" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" > 6 7 <TextView 8 android:id="@+id/textView" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:textSize="40sp" 12 android:layout_centerInParent="true" /> 13 14 </com.github.androidprogresslayout.ProgressLayout>
MainActivity.java:
1 package com.zzw.testandroidprogresslayout; 2 3 import com.github.androidprogresslayout.ProgressLayout; 4 5 import android.app.Activity; 6 import android.os.Bundle; 7 import android.os.Handler; 8 import android.os.Message; 9 import android.view.animation.Animation; 10 import android.widget.TextView; 11 12 public class MainActivity extends Activity { 13 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_main); 18 19 final ProgressLayout progressLayout = (ProgressLayout) findViewById(R.id.progressLayout); 20 final TextView textView = (TextView) findViewById(R.id.textView); 21 22 Handler handler = new Handler() { 23 @Override 24 public void handleMessage(Message msg) { 25 textView.setText("測試完成"); 26 27 // 切換回正常顯示頁面 28 progressLayout.showContent(); 29 } 30 }; 31 // 開始加載... 假設從這裡開始一個耗時的操作將開始啟動,在此啟動過程中,開發者希望用戶稍事休息,等待。。。 32 progressLayout.showProgress(); 33 34 // 假設有一個耗時的加載業務邏輯,需要5秒完成。 35 handler.sendEmptyMessageDelayed(0, 5000); 36 } 37 }
安卓動態調試七種武器之離別鉤 – Hooking(下),安卓hooking0x00 序 隨著移動安全越來越火,各種調試工具也都層出不窮,但因為環境和需求的不同,並沒有工具
Android開發學習之路--網絡編程之初體驗 一般手機都是需要上網的,一般我們的浏覽器就是個webview。這裡簡單實現下下功能,先編寫Android的layout
畫畫板--第三方開源--DrawableView,畫板--drawableview Android上的第三方開源DrawableView支持手
Android屏幕計量單位詳解,android計量單位1.px (pixels)(像素):是屏幕的物理像素點,與密度相關,密度大了,單位面積上的px會比較多。通