我在我的應用程序中有一個alertdialog和進度對話框。我希望我的進度對話框和警報對話框看起來與iphone中的一樣。我如何改變它們的背景來實現這一目標?在android中更改progressdialog和alertdialog背景?
編輯: 也可以使用自定義視圖來實現這種效果嗎?擴展進度對話類的東西.....? 感謝您的幫助。
我在我的應用程序中有一個alertdialog和進度對話框。我希望我的進度對話框和警報對話框看起來與iphone中的一樣。我如何改變它們的背景來實現這一目標?在android中更改progressdialog和alertdialog背景?
編輯: 也可以使用自定義視圖來實現這種效果嗎?擴展進度對話類的東西.....? 感謝您的幫助。
1)創建一個自定義對話框的java類,像這樣的上面:
你可以簡單的複製和粘貼以上內容到新的Java文件,不需要改變。
package com.your.app;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
public class CustomProgressDialog extends Dialog {
public Activity c;
public Dialog d;
private String progressTitle;
private String progressComments;
private TextView tvProgressTitle;
private TextView tvProgressComments;
public CustomProgressDialog(Activity a) {
super(a);
// TODO Auto-generated constructor stub
this.c = a;
}
public CustomProgressDialog(Activity a,String progressTitle,String progressComments) {
super(a);
// TODO Auto-generated constructor stub
this.progressTitle = progressTitle;
this.progressComments = progressComments;
this.c = a;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_progress);
tvProgressTitle = (TextView) findViewById(R.id.tvProgressTitle);
tvProgressComments = (TextView) findViewById(R.id.tvProgressComments);
tvProgressTitle.setText(this.progressTitle);
tvProgressComments.setText(this.progressComments);
}
}
2)創建一個名爲在具有上述內容的佈局文件夾dialog_progress
一個新的.xml文件:
(這只是一個簡單的例子,看起來像Android的默認進度對話框,但你可以創建自己的佈局)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="#EDEDED"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
>
<TextView
android:layout_marginLeft="100dp"
android:id="@+id/tvProgressTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Loading..."
android:textColor="#000000"
android:textSize="17dp"
android:textStyle="bold"/>
</LinearLayout>
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:visibility="visible"
android:id="@+id/ctview2"
android:background="#000000"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ProgressBar
android:layout_marginLeft="30dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
/>
<TextView
android:layout_marginLeft="15dp"
android:textColor="#000000"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Please wait."
android:id="@+id/tvProgressComments" />
</LinearLayout>
3)所以,如果你想使用它,簡單的添加您的活動驗證碼:
CustomProgressDialog mprogress = new CustomProgressDialog(MainActivity.this,"Loading...","Please wait.");
mprogress.show();
而當你想放棄它,只需調用mprogress.dismiss();
可能重複[我怎樣才能更改Android警報對話框的背景?](http://stackoverflow.com/questions/3118601/how-can-i-change-the-background-of-android-alert-dialogs) – 2012-06-30 09:50:53