android dialog菜单,android 页面底部弹出菜单(dialog)

列举两种方法:

方法一:使用dialog(背景会变暗)private void showDialog(Context context, @LayoutRes int resource) {

//设置要显示的view

View view = View.inflate(context,resource,null);

//此处可按需求为各控件设置属性

view.findViewById(R.id.dialog_voicegame_share_cancel).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

}

});

Dialog dialog = new Dialog(context,R.style.dialog);

dialog.setContentView(view);

Window window = dialog.getWindow();

//设置弹出窗口大小

window.setLayout(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);

//设置显示位置

window.setGravity(Gravity.BOTTOM);

//设置动画效果

window.setWindowAnimations(R.style.AnimBottom);

dialog.show();

}

R.style.dialog的设置参考android dialog style属性设置

更多用法参考Android实现底部对话框

方法二:使用PopupWindow(背景不变)private void showPopupWindow(final Context context, @LayoutRes int resource) {

//设置要显示的view

View view = View.inflate(context,resource,null);

//此处可按需求为各控件设置属性

view.findViewById(R.id.dialog_voicegame_share_cancel).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

}

});

PopupWindow popupWindow = new PopupWindow(view);

//设置弹出窗口大小

popupWindow.setWidth(WindowManager.LayoutParams.FILL_PARENT);

popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);

//必须设置以下两项,否则弹出窗口无法取消

popupWindow.setFocusable(true);

popupWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));

//设置动画效果

popupWindow.setAnimationStyle(R.style.AnimBottom);

//设置显示位置,findViewById获取的是包含当前整个页面的view

popupWindow.showAtLocation(findViewById(R.id.activity_voicegame_share), Gravity.BOTTOM,0,0);

}

更多用法参考Android PopupWindow详解

以上两种方法都用到了动画效果,设置如下

在values/styles.xml中写入

@anim/push_bottom_in

@anim/push_bottom_out

在anim文件夹创建push_bottom_in.xml

android:duration="200"

android:fromYDelta="50%p"

android:toYDelta="0" />

在anim文件夹创建push_bottom_out.xml

android:duration="200"

android:fromYDelta="0"

android:toYDelta="50%p" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值