码迷,mamicode.com
首页 > 其他好文 > 详细

仿IPhone从底部弹出选项菜单

时间:2015-05-12 11:20:46      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:android开发   对话框   

       项目中开发需要,就是在点击某个控件(如头像ImageView)时要求弹出一个操作的选项菜单(对话框),效果就是像IPhone的一样,从手机屏幕底部往上弹出的,做了个简单的效果工具类,写下来方便下次使用。

    首先我们要定义弹出的对话框样式:

public 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;
}

这样就可以创建一个对话框了。

仿IPhone从底部弹出选项菜单

标签:android开发   对话框   

原文地址:http://blog.csdn.net/true100/article/details/45666473

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!