可以顯示在的Android任務(wù),通過加載進(jìn)度條的進(jìn)展。進(jìn)度條有兩種形狀。加載欄和加載微調(diào)(spinner)。在本章中,我們將討論微調(diào)(spinner)。
Spinner 用于顯示的那些任務(wù)的完成的總時間是未知的進(jìn)展。為了使用它只需要在XML這樣定義它。
<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" />
定義它的XML之后,必須得到在java文件通過ProgressBar類的引用。它的語法如下:
private ProgressBar spinner; spinner = (ProgressBar)findViewById(R.id.progressBar1);
之后可以使它消失,并通過setVisibility方法需要時將其帶回。它的語法如下:
spinner.setVisibility(View.GONE); spinner.setVisibility(View.VISIBLE);
除了這些方法,還有在進(jìn)度類中定義的其他方法,可以使用更有效地處理微調(diào)(Spinner )。
| Sr.No | 方法及說明 |
|---|---|
| 1 |
isIndeterminate() 表明該進(jìn)度條是否處于不確定模式 |
| 2 |
postInvalidate() 導(dǎo)致無效的情況發(fā)生在隨后的循環(huán)事件循環(huán) |
| 3 |
setIndeterminate(boolean indeterminate) 更改不確定模式的進(jìn)度條 |
| 4 |
invalidateDrawable(Drawable dr) 無效指定繪制對象 |
| 5 |
incrementSecondaryProgressBy(int diff) 指定的量增加進(jìn)度條的二次進(jìn)度 |
| 6 |
getProgressDrawable() 獲取用于繪制正在進(jìn)行模式的進(jìn)度條的繪制 |
這里有一個例子演示如何使用進(jìn)度條來處理微調(diào)。它創(chuàng)建了一個基本的應(yīng)用程序,它可以打開微調(diào)點擊按鈕。
為了試驗這個例子,可以在實際設(shè)備或模擬器運行此程序。
| Steps | 描述 |
|---|---|
| 1 | 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為:Spinner 。在創(chuàng)建這個項目,確保目標(biāo)SDK編譯在Android SDK的最新版本或使用更高級別的API |
| 2 | 修改 src/MainActivity.java 文件添加必要的代碼 |
| 3 | 修改 res/layout/activity_main 添加相應(yīng)的XML組件 |
| 4 | 修改 res/values/string.xml 添加必要的字符串組成部分 |
| 5 | 運行應(yīng)用程序并選擇運行Android的設(shè)備,并在其上安裝的應(yīng)用和驗證結(jié)果 |
以下是修改主活動文件的內(nèi)容src/com.yiibai.spinner/MainActivity.java.
package com.example.spinner; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.ProgressBar; public class MainActivity extends Activity { private ProgressBar spinner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = (ProgressBar)findViewById(R.id.progressBar1); spinner.setVisibility(View.GONE); } public void load(View view){ spinner.setVisibility(View.VISIBLE); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
以下是經(jīng)修改 res/layout/activity_main.xml. 的內(nèi)容
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="103dp" android:onClick="load" android:text="@string/hello_world"上一篇:Android UI布局下一篇:Android廣播接收器