创建一个从底部显示的对话框

  1. if (dialog == null) {
  2. dialog = new Dialog(context, R.style.theme_from_bottom);
  3. View view = View.inflate(context, R.layout.udialog, null);
  4. ImageView closeView = view.findViewById(R.id.user_contract_close_view);
  5. Button button = view.findViewById(R.id.user_contract_im_view);
  6. dialog.setContentView(view);
  7. dialog.setCancelable(false);
  8.  
  9. //设置自适应的方法:
  10. WindowManager.LayoutParams dialogParams = contactDialog.getWindow().getAttributes();
  11. dialogParams.width = WindowManager.LayoutParams.MATCH_PARENT;
  12. dialogParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
  13.  
  14. //设置底部显示
  15. dialogParams.gravity = Gravity.BOTTOM;
  16. contactDialog.getWindow().setAttributes(dialogParams);
  17.  
  18. //设置窗口大小的方法:
  19. int with = (int) (context.getResources().getDisplayMetrics().widthPixels * 0.6)
  20. int height = (int) (context.getResources().getDisplayMetrics().heightPixels * 0.4);
  21.  
  22. //对话框重置属性
  23. contactDialog.getWindow().setAttributes(dialogParams);
  24. }

xml 文件

  1. <style name="theme_from_bottom" parent="@android:style/Theme.Dialog">
  2. <item name="android:windowFrame">@null</item>
  3. <item name="android:windowNoTitle">true</item>
  4. <item name="android:windowIsFloating">true</item>
  5. <item name="android:windowIsTranslucent">true</item>
  6. <item name="android:windowAnimationStyle">@style/dialog_bottom</item>
  7. <item name="android:backgroundDimEnabled">true</item>
  8. <item name="android:windowBackground">@android:color/transparent</item>
  9. </style>
  10.  
  11. <style name="dialog_bottom" parent="@android:style/Animation.Dialog">
  12. <item name="android:windowFrame">@null</item>
  13. <item name="android:windowIsFloating">true</item>
  14. <item name="android:windowIsTranslucent">false</item>
  15. <item name="android:windowNoTitle">true</item>
  16. <item name="android:backgroundDimEnabled">false</item>
  17. <item name="android:windowEnterAnimation">@anim/dialog_bottom_in</item>
  18. <item name="android:windowExitAnimation">@anim/dialog_bottom_out</item>
  19. </style> 
  20.  
  21. 动画
  1. dialog_bottom_in
  1. <?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:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0" android:toAlpha="1.0"
    android:duration="300" />
    </set>
  1. dialog_bottom_out
  1. <?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="100%p" />
    <alpha
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="1.0" android:toAlpha="0.0"
    android:duration="300" />
    </set>

dialog自适应大小、固定大小、底部显示的更多相关文章

  1. 【转】javascript弹出固定大小的窗口页面

    来源:http://weicfprince.blog.163.com/blog/static/8441066920081010113231969/ 现在我们想弹出一个WEB窗体,让其处于屏幕的中间位置 ...

  2. fusioncharts的3D饼图固定大小和角度

    3D饼图的pieRadius和startingAngle属性 pieRadius:饼图的半径 startingAngle:饼图的角度(旋转) 在固定大小的div里面,饼图上如果显示label或者val ...

  3. JavaScript自适应调整文字大小

    JavaScript自适应调整文字大小 今天有个任务,发现页面上的数字由于太长而与其他数字重叠了.这个数字还不能像文字那样只显示一部分,必须全部显示.想了一些办法都不行,最后把超过1000变成1K,大 ...

  4. 使用SplFixedArray创建固定大小的数组

    PHP在定义数组的时候不用像C或Java一样定义数组大小,PHP数组可以根据我们的需要增长或收缩.但这种灵活性在内存使用方面带来很大的不便. 而PHP中可以使用SplFixedArray创建固定大小的 ...

  5. mui在tab选项卡中echarts图表不能动态随页面变化大小 只能固定大小

    在mui tab选项卡中一直都不能让echarts动态变化大小 只能固定大小来展示图表,网上说的window.onresize = mycharts.resize;方法根本就没有效果,后面在https ...

  6. textarea 在浏览器中固定大小和禁止拖动

    HTML 标签 textarea 在大部分浏览器中只要指定行(rows)和列(cols)属性,就可以规定 textarea 的尺寸,大小就不会改变,不过更好的办法是使用 CSS 的 height 和 ...

  7. 点击弹出固定大小的新窗口(js实现)

    <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html') --> </SCRIPT& ...

  8. textarea 怎么固定大小,不让调整

    1:彻底禁用拖动(推荐) resize: none; 2:只是固定大小,右下角的拖动图标仍在 width: 200px; height: 100px; max-width: 200px; max-he ...

  9. Mina、Netty、Twisted一起学(三):TCP消息固定大小的前缀(Header)

    在上一篇博文中,有介绍到用换行符分割消息的方法.但是这种方法有个小问题,如果消息中本身就包含换行符,那将会将这条消息分割成两条,结果就不对了. 本文介绍另外一种消息分割方式,即上一篇博文中讲的第2条: ...

随机推荐

  1. 【原创】谈谈线上CPU100%排查套路

    引言 不知道在大家面试中,有没有遇到这个问题 生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢? 这个问题分为两版回答! 高调版 对不起,我是做研发的,这个问 ...

  2. flask轻量级框架入门

    # -*- encoding: utf-8 -*- #导入Flask类, 导入重定向,url_for是简易寻址跳转, from flask import Flask,redirect,url_for, ...

  3. asp.net 文件分片上传

    最近在研究文件上传,里面的门道还是挺多的,网上大多数文章比较杂乱,代码都是片段,对于新手小白来说难度较高,所以在此详细写一下今天看到的一个demo,关于文件分片上传的. <!DOCTYPE ht ...

  4. CentOS配置svn

    参考: https://www.cnblogs.com/taohaijun/p/7172939.html 1.检查已安装版本  rpm -qa subversion 卸载旧版本SVN yum remo ...

  5. [转] package-lock.json

    其实用一句话来概括很简单,就是锁定安装时的包的版本号,并且需要上传到git,以保证其他人在npm install时大家的依赖能保证一致. 引用知乎@周载南的回答 根据官方文档,这个package-lo ...

  6. 使用Yii2的Web框架搭建微服务框架

    方法 使用自己的Yii2镜像作为基础 使用Yii2的Web框架搭建,为了节省搭建Yii2框架的时间,直接使用现有的Yii2项目,删除了业务相关的逻辑类,将这个代码库作为搭建微服务框架的基础,本身已经积 ...

  7. bean属性复制到另外一个bean

    import org.springframework.beans.BeanUtils; BeanUtils.copyProperties(maker.getBaseInfo(), newBasInfo ...

  8. 《java核心技术36讲》学习笔记-------杨晓峰(极客时间)

    非常荣幸作为晓峰哥的同事,之前就看过这篇文章,重写读一遍,再学习学习. 一.开篇词 初级.中级:java和计算机科学基础.开源框架的使用:高级.专家:java io/nio.并发.虚拟机.底层源码.分 ...

  9. macTypeError: slice indices must be integers or None or have an index method

    一般是由于Numpy的版本太高了(1.12对此进行了调整),有的时候传入numpy array里面的索引可能是浮点数,这个时候最好检查一下索引强制转换为int类型 或者安装低版本的numpy sudo ...

  10. Nginx与前端开发

    Nginx与Node.js "Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,时常用于服务端的反向代理和负载均衡." 作为前 ...