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

if (dialog == null) {
dialog = new Dialog(context, R.style.theme_from_bottom);
View view = View.inflate(context, R.layout.udialog, null);
ImageView closeView = view.findViewById(R.id.user_contract_close_view);
Button button = view.findViewById(R.id.user_contract_im_view);
dialog.setContentView(view);
dialog.setCancelable(false); //设置自适应的方法:
WindowManager.LayoutParams dialogParams = contactDialog.getWindow().getAttributes();
dialogParams.width = WindowManager.LayoutParams.MATCH_PARENT;
dialogParams.height = WindowManager.LayoutParams.WRAP_CONTENT; //设置底部显示
dialogParams.gravity = Gravity.BOTTOM;
contactDialog.getWindow().setAttributes(dialogParams); //设置窗口大小的方法:
int with = (int) (context.getResources().getDisplayMetrics().widthPixels * 0.6)
int height = (int) (context.getResources().getDisplayMetrics().heightPixels * 0.4); //对话框重置属性
contactDialog.getWindow().setAttributes(dialogParams);
}

xml 文件

 <style name="theme_from_bottom" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@style/dialog_bottom</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style> <style name="dialog_bottom" parent="@android:style/Animation.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowEnterAnimation">@anim/dialog_bottom_in</item>
<item name="android:windowExitAnimation">@anim/dialog_bottom_out</item>
</style>  动画
dialog_bottom_in
<?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>
dialog_bottom_out
<?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>

最新文章

  1. S3C2440UART之FIFO
  2. Spring配置文件中使用表达式
  3. MVc Forms Membership rolemanage 角色权限验证管理
  4. pdf压缩之GSview
  5. OA学习笔记-004-Spring2.5配置
  6. C语言宏定义函数中的“_##”的意思
  7. FastReport的再次使用
  8. ubuntu 自动获取ip的怎么设置
  9. hadoop yarn 易理解
  10. Linux CentOs集群LVS+Keepalived负载均衡的实现
  11. 执行对象Statement、PreparedStatement和CallableStatement详解 JDBC简介(五)
  12. 高通 NXP NFC(PN547PN548) 移植流程 android6.0
  13. python中的split()方法的使用
  14. 纯js上传文件 很好用
  15. 可遇不可求的Question之error: Failed dependencies: MySQLconflicts 错误篇
  16. javascript History对象属性和方法
  17. HDU 2612 find a way 【双BFS】
  18. Android 架构师技能图谱(转载)
  19. Netty 粘包/拆包应用案例及解决方案分析
  20. Django开发步骤

热门文章

  1. Python--day13(函数嵌套定义,global、nonlocal、闭包函数、装饰器)
  2. 类Math
  3. Codeforces Round #545 (Div. 2)-Camp Schedule
  4. Spring Boot与缓存
  5. codeforces 796A-D
  6. Java 获取指定日期范围内的每个月,每季度,每一年
  7. 【CF1063F】String Journey 哈希
  8. P1462 通往奥格瑞玛的道路 (二分+最短路)
  9. DFA确定有限状态自动机
  10. 谈谈JavaScript中继承方式