清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
项目中开发需要,就是在点击某个控件(如头像ImageView)时要求弹出一个操作的选项菜单(对话框),效果就是像IPhone的一样,从手机屏幕底部往上弹出的,做了个简单的效果工具类,写下来方便下次使用。
首先我们要定义弹出的对话框样式:
ublic static Dialog createShowAlert(final Context context, int layoutId) {/**方法中要传入建立对话框的Layout*/ LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(layoutId, null); final int cFullFillWidth = 10000; layout.setMinimumWidth(cFullFillWidth); /** R.style.My_Dialog_Style为项目中正定义的样式*/ final Dialog dlg = new Dialog(context, R.style.My_Dialog_Style); Window w = dlg.getWindow(); WindowManager.LayoutParams lp = w.getAttributes(); lp.x = 0; final int cMakeBottom = -1000; lp.y = cMakeBottom; lp.gravity = Gravity.BOTTOM;//**此处改变显示位置*/ dlg.onWindowAttributesChanged(lp); dlg.setCanceledOnTouchOutside(true); dlg.setContentView(layout); return dlg; } /*********在需要创建对话框的地方调用上面方法就可以**********************************/ public static final Dialog showConfirmAlert(final Context context, int titleStrId, int itemStrId, int itemColorId, View.OnClickListener onClick) { final Dialog dlg = createShowAlert(context, R.layout.my_dialog);/**调用上面的方法*/ TextView titleView = (TextView) dlg.findViewById(R.id.textview1); titleView.setText(titleStrId); TextView itemView = (TextView) dlg.findViewById(R.id.textview2); itemView.setText(itemStrId); itemView.setTextColor(context.getResources().getColor(onClick)); itemView.setOnClickListener(onClick); dlg.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dlg.dismiss(); } }); return dlg; } 这样就可以创建一个对话框了。