仿IPhone 对话框,废话不多说,直接上图,如下:
提示框
确认对话框
activity_main.xml
<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"
tools:context=".MainActivity" >
<Button
android:id="@+id/bt_showOne"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/one_button_dialog" />
<Button
android:id="@+id/bt_showTwo"
android:layout_below="@id/bt_showOne"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/two_button_dialog" />
</RelativeLayout>
MainActivity.java
package com.example.iphonedialog;
import com.example.iphonedialog.util.IphoneDialog;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private Button bt_showOne;
private Button bt_showTwo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
setListener();
}
private void findView() {
bt_showOne = (Button) findViewById(R.id.bt_showOne);
bt_showTwo = (Button) findViewById(R.id.bt_showTwo);
}
private void setListener() {
bt_showOne.setOnClickListener(this);
bt_showTwo.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_showOne:
Dialog tipsDialog = IphoneDialog.getOneBtnDialog(this, "About to call 119", "Are you sure you want to proceed?");
tipsDialog.show();
break;
case R.id.bt_showTwo:
Dialog confirmDialog = IphoneDialog.getTwoBtnDialog(this, "About to call 119", "Are you sure you want to proceed?");
confirmDialog.show();
break;
default:
break;
}
}
}
IphoneDialog.java
package com.example.iphonedialog.util;
import android.app.Activity;
import android.app.Dialog;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import com.example.iphonedialog.R;
public class IphoneDialog {
public static Dialog getTwoBtnDialog(Activity activity, String title,
String msg) {
final Dialog dialog = new Dialog(activity,
android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.r_okcanceldialogview);
((TextView) dialog.findViewById(R.id.dialog_title)).setText(title);
((TextView) dialog.findViewById(R.id.dialog_message)).setText(msg);
((Button) dialog.findViewById(R.id.ok)).setText(android.R.string.ok);
((Button) dialog.findViewById(R.id.cancel))
.setText(android.R.string.cancel);
((Button) dialog.findViewById(R.id.cancel))
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// write your code to do things after users clicks
// CANCEL
dialog.dismiss();
}
});
return dialog;
// ((Button) dialog.findViewById(R.id.ok))
// .setOnClickListener(new OnClickListener() {
//
// @Override
// public void onClick(View v) {
// // write your code to do things after users clicks OK
//
// dialog.dismiss();
// }
// });
// dialog.show();
}
/**
* it will show the OK dialog like iphone, make sure no keyboard is visible
*
* @param title
* title for dialog
* @param msg
* msg for body
*/
public static Dialog getOneBtnDialog(Activity activity, String title,
String msg) {
final Dialog dialog = new Dialog(activity,
android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.r_okdialogview);
((TextView) dialog.findViewById(R.id.dialog_title)).setText(title);
((TextView) dialog.findViewById(R.id.dialog_message)).setText(msg);
return dialog;
// ((Button) dialog.findViewById(R.id.ok)).setText("Ok");
// ((Button) dialog.findViewById(R.id.ok))
// .setOnClickListener(new OnClickListener() {
// @Override
// public void onClick(View v) {
// // write your code to do things after users clicks OK
// dialog.dismiss();
// }
// });
// dialog.show();
}
}
r_okcanceldialogview.xml
<?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="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:background="@drawable/alert"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="17dip"
android:text="About to call 323"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />
<TextView
android:id="@+id/dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:gravity="center_horizontal"
android:text="Are you sure you want to proceed?"
android:textColor="#ffffff"
android:textSize="16sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:layout_marginTop="10dip"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/cancel"
android:layout_width="0dip"
android:layout_height="40dip"
android:layout_gravity="left"
android:layout_marginLeft="10dip"
android:layout_weight="0.5"
android:background="@drawable/custom_button"
android:text="Cancel"
android:textColor="@android:color/white"
android:textStyle="bold" />
<Button
android:id="@+id/ok"
android:layout_width="0dip"
android:layout_height="40dip"
android:layout_marginBottom="10dip"
android:layout_marginRight="10dip"
android:layout_weight="0.5"
android:background="@drawable/custom_button"
android:text="OK"
android:textColor="@android:color/white"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
r_okdialogview.xml
<?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="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:background="@drawable/alert"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dip"
android:text="About to call 323"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />
<TextView
android:id="@+id/dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:gravity="center_horizontal"
android:text="Are you sure you want to proceed?"
android:textColor="#ffffff"
android:textSize="15sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:layout_marginTop="10dip"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/ok"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:layout_marginBottom="10dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:background="@drawable/custom_button"
android:text="OK"
android:textColor="@android:color/white"
android:textSize="17sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
工程源码 下载地址:http://download.csdn.net/detail/fx_sky/5870645