編輯:關於Android編程
在很多PC軟件或手機軟件中,我們都會看見 “加載中...” 類似的對話框,當然,在android應用程序中也是如此。如果我們想在android應用程序中使用這樣的效果,那麼就需要用到ProgressDialog。首先,我們來看一下ProgressDialog這個類。
ProgressDialog類繼承自AlertDialog類,同樣存放在android.app包中。ProgressDialog有兩種形式,一種是圓圈旋轉形式,一種是水平進度條形式,選擇哪種形式可以通過以下兩個屬性值來設定:
static int STYLE_HORIZONTAL
Creates a ProgressDialog with a horizontal progress bar.
static int STYLE_SPINNER
Creates a ProgressDialog with a ciruclar, spinning progress bar.
注意,當設置為水平進度條形式時,進度的取值范圍為0—10000。
ProgressDialog的構造方法有以下兩種:
ProgressDialog(Context context)
ProgressDialog(Context context, int theme)
除了構造方法外,ProgressDialog還提供的如下的靜態方法返回ProgressDialog對象:
static ProgressDialog show(Context context, CharSequence title, CharSequence message)
static ProgressDialog show(Context context, CharSequence title, CharSequence message, boolean indeterminate)
static ProgressDialog show(Context context, CharSequence title, CharSequence message, boolean indeterminate, boolean cancelable)
static ProgressDialog show(Context context, CharSequence title, CharSequence message, boolean indeterminate, boolean cancelable, DialogInterface.OnCancelListener cancelListener)
需要留意的是第一個參數必須是目前運行的Activity的Context。
android的ProgressDialog必須要在後台程序運行完畢前,以dismiss()方法來關閉取得焦點的對話框,否則程序就會陷入無法終止的無窮循環中。在線程中,不得有任何更改Context或parent View的任何狀態,文字輸出等時間,因為線程裡的Context與View並不屬於parent,兩者之間也沒有關聯。
我們以下面一個簡單的程序來學習ProgressDialog的應用:
[java] public class MainActivity extends Activity
{
private Button button=null;
public ProgressDialog dialog=null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
this.button=(Button)super.findViewById(R.id.button);
this.button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
final CharSequence strDialogTitle=MainActivity.this.getString(R.string.str_dialog_title);
final CharSequence strDialogBody=MainActivity.this.getString(R.string.str_dialog_body);
//顯示Progress對話框
dialog=ProgressDialog.show(MainActivity.this,strDialogTitle,strDialogBody,true);
new Thread()
{
@Override
public void run()
{
try
{
//表示後台運行的代碼段,以暫停3秒代替
sleep(3000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
finally
{
//卸載dialog對象
dialog.dismiss();
}
}
}.start();
}
});
}
}
public class MainActivity extends Activity
{
private Button button=null;
public ProgressDialog dialog=null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
this.button=(Button)super.findViewById(R.id.button);
this.button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
final CharSequence strDialogTitle=MainActivity.this.getString(R.string.str_dialog_title);
final CharSequence strDialogBody=MainActivity.this.getString(R.string.str_dialog_body);
//顯示Progress對話框
dialog=ProgressDialog.show(MainActivity.this,strDialogTitle,strDialogBody,true);
new Thread()
{
@Override
public void run()
{
try
{
//表示後台運行的代碼段,以暫停3秒代替
sleep(3000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
finally
{
//卸載dialog對象
dialog.dismiss();
}
}
}.start();
}
});
}
}
該程序布局管理器僅需一個Button組件(id為button)即可,此處不再給出。
注意,為了代碼更加符合規范,本程序在strings.xml中定義了如下字符串資源:
[html] <?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">demo2</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="execute">執行</string>
<string name="str_dialog_title">請稍等片刻</string>
<string name="str_dialog_body">正在執行...</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">demo2</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="execute">執行</string>
<string name="str_dialog_title">請稍等片刻</string>
<string name="str_dialog_body">正在執行...</string>
</resources>
程序運行效果截圖:
寫在前面現在,越來越多的App裡面使用了模糊效果,這種模糊效果稱之為高斯模糊。大家都知道,在Android平台上進行模糊渲染是一個相當耗CPU也相當耗時的操作,一旦處理不
Android定義了一種權限方案來保護設備上的資源和功能。例如,在默認情況下,應用程序無法訪問聯系人列表、撥打電話等。下面就以撥打電話為例介紹一下系統對權限的要求。一般在
話不多說先看今天的實現的效果:相信這種效果很多項目都會用到,今天就講講利用RecycleView來實現他,博主把此篇文章定位初級篇,可能因為這確實很簡單,所以我要更要講的
現在微信理財通相對於余額寶收益高一些,即使理財通的收益較高,但很多網友都在擔心微信理財通是否安全的問題,是否能保障用戶的錢不怕被盜。我們一起來探究下吧!微信