Dialog显示宽度铺满屏幕宽度的设置

在项目中,弹出分享面板时,觉着使用Dialog比使用Popuwindow更好,所以使用Dialog弹出分享的面板,但是发现在小米Note3手机上,弹出的dialog的宽度老是和屏幕的宽度有一些距离,高度也是。
在搜索使用了百度和google上的大部分代码测试之后,发现还是没有解决问题。。。终于让我看到一篇博客。。。。彻底解决了这个问题。。。但是那个博客我忘记收藏了。。。SORRY!
所以写下来代码记录一下吧。希望可以帮到和我遇到同样问题的人。。。
我没有设置Dialog的样式什么的。就是写个自定义的Dialog。只是在它show之后,添加了一些属性设置。。

代码设置如下:

  ShareDialog  mShareDialog = new ShareDialog(DetailActivity.this,   shareBtnListener);
    mShareDialog.show();//这里替换成你自己的dialog就行了。。

 // 设置宽度为屏宽、靠近屏幕底部。
  Window window = dialog.getWindow();
//设置dialog弹出的动画,从屏幕底部弹出     window.setWindowAnimations(R.style.take_photo_anim);
//最重要的一句话,一定要加上!要不然怎么设置都不行!     window.setBackgroundDrawableResource(android.R.color.transparent);
WindowManager.LayoutParams wlp = window.getAttributes();
Display d = window.getWindowManager().getDefaultDisplay();
//获取屏幕宽
 wlp.width = (int) (d.getWidth());
 //宽度按屏幕大小的百分比设置,这里我设置的是全屏显示
wlp.gravity = Gravity.BOTTOM;
if (wlp.gravity == Gravity.BOTTOM)
      wlp.y = 0; 
      //如果是底部显示,则距离底部的距离是0
window.setAttributes(wlp);

take_photo_anim 的代码

 <!--分享面板的弹出动画-->
    <style name="take_photo_anim" parent="android:Animation">
        <item name="android:windowEnterAnimation">@anim/pop_enter_anim</item>
        <item name="android:windowExitAnimation">@anim/pop_exit_anim</item>
    </style>

在res下面新建anim文件夹,pop_enter_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="300"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="300"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

pop_exit_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="300"
        android:fromYDelta="0"
        android:toYDelta="50%p" />
    <alpha
        android:duration="300"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />

</set>

全文结束!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值