package cn.rongcloud.im.server.widget; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import cn.rongcloud.im.R; /** * [底部弹出dialog] * * @author devin.hu * @version 1.0 * @date 2014-1-15 * **/ public class BottomMenuDialog extends Dialog implements View.OnClickListener { private Button photographBtn; private Button localPhotosBtn; private Button cancelBtn; private View.OnClickListener confirmListener; private View.OnClickListener cancelListener; private View.OnClickListener middleListener; private String confirmText; private String middleText; private String cancelText; /** * @param context */ public BottomMenuDialog(Context context) { super(context, R.style.dialogFullscreen); } /** * @param context * @param theme */ public BottomMenuDialog(Context context, int theme) { super(context, theme); } /** * @param context */ public BottomMenuDialog(Context context, String confirmText, String middleText) { super(context, R.style.dialogFullscreen); this.confirmText = confirmText; this.middleText = middleText; } /** * @param context */ public BottomMenuDialog(Context context, String confirmText, String middleText, String cancelText) { super(context, R.style.dialogFullscreen); this.confirmText = confirmText; this.middleText = middleText; this.cancelText = cancelText; } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_dialog_bottom); Window window = getWindow(); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND; layoutParams.dimAmount = 0.5f; window.setGravity(Gravity.BOTTOM); window.setAttributes(layoutParams); window.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); photographBtn = (Button) findViewById(R.id.photographBtn); localPhotosBtn = (Button) findViewById(R.id.localPhotosBtn); cancelBtn = (Button) findViewById(R.id.cancelBtn); if (!TextUtils.isEmpty(confirmText)) { photographBtn.setText(confirmText); } if (!TextUtils.isEmpty(middleText)) { localPhotosBtn.setText(middleText); } if (!TextUtils.isEmpty(cancelText)) { cancelBtn.setText(cancelText); } cancelBtn.setOnClickListener(this); photographBtn.setOnClickListener(this); localPhotosBtn.setOnClickListener(this); } @Override public boolean onTouchEvent(MotionEvent event) { dismiss(); return true; } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.photographBtn) { if (confirmListener != null) { confirmListener.onClick(v); } return; } if (id == R.id.localPhotosBtn) { if (middleListener != null) { middleListener.onClick(v); } return; } if (id == R.id.cancelBtn) { if (cancelListener != null) { cancelListener.onClick(v); } dismiss(); return; } } public View.OnClickListener getConfirmListener() { return confirmListener; } public void setConfirmListener(View.OnClickListener confirmListener) { this.confirmListener = confirmListener; } public View.OnClickListener getCancelListener() { return cancelListener; } public void setCancelListener(View.OnClickListener cancelListener) { this.cancelListener = cancelListener; } public View.OnClickListener getMiddleListener() { return middleListener; } public void setMiddleListener(View.OnClickListener middleListener) { this.middleListener = middleListener; } }