package com.jiuqi.njt.widget;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import com.jiuqi.njt.R;
/**
* 自定义选择图片对话框
* 样式是圆角(有三个按钮)
* @author qyd
*
*/
public class ChosePictureDialog extends Dialog {
public ChosePictureDialog(Context context) {
super(context);
}
public ChosePictureDialog(Context context, int theme) {
super(context, theme);
}
public static class Builder {
private Context context;
private String chosePictureFromPhoneButtonText;
private String chosePictureFromCameraButtonText;
private String chosePictureCancelButtonText;
private View contentView;
private DialogInterface.OnClickListener chosePictureFromPhoneButtonClickListener;
private DialogInterface.OnClickListener chosePictureFromCameraButtonClickListener;
private DialogInterface.OnClickListener chosePictureCancelButtonClickListener;
public Builder(Context context) {
this.context = context;
}
public Builder setContentView(View v) {
this.contentView = v;
return this;
}
/**
* 设置 对话框按钮点击事件
*
* @param positiveButtonText
* @return
*/
public Builder setChosePictureFromPhoneButton(
String chosePictureFromPhoneButtonText,
DialogInterface.OnClickListener listener) {
this.chosePictureFromPhoneButtonText =chosePictureFromPhoneButtonText;
this.chosePictureFromPhoneButtonClickListener = listener;
return this;
}
public Builder setChosePictureFromCameraButton(
String chosePictureFromCameraButtonText,
DialogInterface.OnClickListener listener) {
this.chosePictureFromCameraButtonText =chosePictureFromCameraButtonText;
this.chosePictureFromCameraButtonClickListener = listener;
return this;
}
public Builder setChosePictureCancelButton(
String chosePictureCancelButtonText,
DialogInterface.OnClickListener listener) {
this.chosePictureCancelButtonText =chosePictureCancelButtonText;
this.chosePictureCancelButtonClickListener = listener;
return this;
}
private boolean dialogGravity =true;
public void setDialogGravity(boolean dialogGravity) {
this.dialogGravity = dialogGravity;
}
public MyAlertDialog create() {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// instantiate the dialog with the custom Theme
final MyAlertDialog dialog = new MyAlertDialog(context,
R.style.Dialog_new_new);
View layout = inflater.inflate(R.layout.chose_picture_dialog_layout, null);
dialog.addContentView(layout, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
((Button) layout.findViewById(R.id.chosePictureFromPhone))
.setText(chosePictureFromPhoneButtonText);
if (chosePictureFromPhoneButtonClickListener != null) {
((Button) layout.findViewById(R.id.chosePictureFromPhone))
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
chosePictureFromPhoneButtonClickListener.onClick(dialog,
DialogInterface.BUTTON_POSITIVE);
}
});
}
((Button) layout.findViewById(R.id.chosePictureFromCamera))
.setText(chosePictureFromCameraButtonText);
if (chosePictureFromCameraButtonClickListener != null) {
((Button) layout.findViewById(R.id.chosePictureFromCamera))
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
chosePictureFromCameraButtonClickListener.onClick(dialog,
DialogInterface.BUTTON_NEGATIVE);
}
});
}
((Button) layout.findViewById(R.id.chosePictureCancel))
.setText(chosePictureCancelButtonText);
if (chosePictureCancelButtonClickListener != null) {
((Button) layout.findViewById(R.id.chosePictureCancel))
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
chosePictureCancelButtonClickListener.onClick(dialog,
DialogInterface.BUTTON_NEGATIVE);
}
});
}
dialog.setContentView(layout);
if(dialogGravity){
dialog.getWindow().setGravity(Gravity.BOTTOM);
}
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.dimAmount = 0.6f;
dialog.getWindow().setAttributes(lp);
dialog.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DIM_BEHIND);
return dialog;
}
}
}