package com.wisedu.scc.love.widget.dialog; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.LinearLayout; import com.wisedu.scc.love.R; /** * 菜单对话框 */ public class MenuDialog extends Dialog implements View.OnClickListener { private Context mContext; private LinearLayout mLlDialogContainer; private OnMenuClick mOnMenuClick; public MenuDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { super(context, cancelable, cancelListener); } public MenuDialog(Context context, int theme) { super(context, theme); init(context); } public MenuDialog(Context context) { super(context, R.style.dialog); init(context); } private void init(Context context) { LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); mContext = context; mLlDialogContainer = linearLayout; setContentView(linearLayout); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Window dialogWindow = getWindow(); DisplayMetrics metrics = getContext().getResources() .getDisplayMetrics(); WindowManager.LayoutParams lp = dialogWindow.getAttributes(); lp.width = (int) (metrics.widthPixels * 0.7); lp.height = WindowManager.LayoutParams.WRAP_CONTENT; lp.gravity = Gravity.CENTER; dialogWindow.setAttributes(lp); } public void setArray(int arrayRes) { String[] datas = mContext.getResources().getStringArray(arrayRes); setArray(datas); } public void setArray(String[] datas) { for (int i = 0; i < datas.length; i++) { Button btn = (Button) LayoutInflater.from(mContext).inflate( R.layout.menu_dialog_item, null); btn.setText(datas[i]); btn.setTag(i); btn.setOnClickListener(this); mLlDialogContainer.addView(btn, new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, (int) mContext.getResources() .getDimension(R.dimen.menu_dialog_item_height))); if (i == 0) { btn.setBackgroundResource(R.drawable.menu_dialog_item_bg_up); } else if (i == datas.length - 1) { btn.setBackgroundResource(R.drawable.menu_dialog_item_bg_down); } else { btn.setBackgroundResource(R.drawable.menu_dialog_item_bg_middle); } } } @Override public void onClick(View v) { this.dismiss(); if (mOnMenuClick != null) { mOnMenuClick.onMenuClickChanged(this, (Integer) v.getTag()); } } public void setOnMenuClick(OnMenuClick mOnMenuClick) { this.mOnMenuClick = mOnMenuClick; } public static interface OnMenuClick { public void onMenuClickChanged(MenuDialog dialog, int index); } }