自定义Dialog宽度占满屏幕
一、自定义Dialog继承Dialog
public class MyDialog extends Dialog {
二、为Dialog设置样式
在style中建立新样式继承
@android:style/Theme.Dialog
或者
@android:style/Theme.Holo.Dialog
- 设置样式去掉边框
- 去掉标题
- 设置窗口透明
- 设置点击对话框外边可以消失等
- 设置动画
<!-- <style name="MyDialog" parent="@android:style/Theme.Dialog">-->
<style name="MyDialog" parent="@android:style/Theme.Holo.Dialog">
<!-- 是否有边框 -->
<item name="android:windowFrame">@null</item>
<!--是否在悬浮Activity之上 -->
<item name="android:windowIsFloating">true</item>
<!--标题 -->
<item name="android:windowNoTitle">true</item>
<!--阴影 -->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<!-- 进入和退出的动画 -->
<item name="android:windowAnimationStyle">@style/MyDialogAnimation</item> <!-- 点外边可以消失 -->
<item name="android:windowCloseOnTouchOutside">true</item> </style> <style name="MyDialogAnimation">
<!--进入 -->
<item name="android:windowEnterAnimation">@anim/dialog_enter</item>
<!--退出-->
<item name="android:windowExitAnimation">@anim/dialog_exit</item>
</style>
进入动画
dialog_enter
dialog_exit
系统自带的可以找到直接拿来用在SDK下找到
目录\sdk\platforms\对应的API版本
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<scale android:fromXScale="0.9" android:toXScale="1.0"
android:fromYScale="0.9" android:toYScale="1.0"
android:pivotX="50%" android:pivotY="50%" android:duration="200" />
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="200" /> </set>
退出
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android:duration="200"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.9"
android:toYScale="0.9"/>
<alpha
android:duration="200"
android:fromAlpha="1.0"
android:toAlpha="0.0"/> </set>
三、在构造方法中设置样式
Context mContext;
public MyDialog(Context context) {
super(context, R.style.MyDialog);
this.mContext=context;
}
四、设置布局
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_dialog);
}
布局文件就是2个TextView
五、重写show方法,设置宽度,高度等
@Override
public void show() {
super.show();
/**
* 设置宽度全屏,要设置在show的后面
*/
LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.gravity=Gravity.BOTTOM;
layoutParams.width= LayoutParams.MATCH_PARENT;
layoutParams.height= LayoutParams.WRAP_CONTENT; getWindow().getDecorView().setPadding(0, 0, 0, 0); getWindow().setAttributes(layoutParams); }
六、完整Dialog类
/**
* Dialog 2016年7月30日
*/
public class MyDialog extends Dialog {
Context mContext; public MyDialog(Context context) {
super(context, R.style.MyDialog);
this.mContext=context; } @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_dialog);
} @Override
public void show() {
super.show();
/**
* 设置宽度全屏,要设置在show的后面
*/
LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.gravity=Gravity.BOTTOM;
layoutParams.width= LayoutParams.MATCH_PARENT;
layoutParams.height= LayoutParams.WRAP_CONTENT; getWindow().getDecorView().setPadding(0, 0, 0, 0); getWindow().setAttributes(layoutParams); } }
自定义Dialog宽度占满屏幕的更多相关文章
- Android RelativeLayout wrap_content 而且 child view 使用 layout_alignParentBottom 时 RelativeLayout 高度会占满屏幕
Android RelativeLayout wrap_content 而且 child view 使用 layout_alignParentBottom 时 RelativeLayout 高度会占满 ...
- React里单页面div自适应浏览器高度占满屏幕
可以用绝对定位方式,让div占满屏幕,css样式如下: height: 100%; width: 100%; position: absolute; top: 0px; bottom: 0px;
- video视频标签一些设置,包括封面、播放结束后的封面、视频占满屏幕的方式、视频播放暂停、展示控制栏、触发全屏播放事件
video视频标签一些设置,包括封面.播放结束后的封面.视频占满屏幕的方式.视频链接.视频播放暂停.展示控制栏.触发全屏播放事件 <video id="video" auto ...
- 控制DIV占满屏幕
网上找了很多帖子,希望是CSS控制的,但是在bootstrap环境下, 控制方式上有点问题.达不到想要的效果. 项目中需要实现的效果: DIV区域占满当前窗口的高度.且在ctrl+鼠标滚轮调整窗口大小 ...
- 在Android中让Preference的宽度占满整个屏幕的宽度
今天遇到一个问题,需要修改Preference的宽度,让其与屏幕宽度一致.搞了一上午. 终于发现Preference的这个尺寸是在PreferenceFrameLayout中设置的.通过下面这段代码, ...
- 占满屏幕的宽高,当把textarea换成其他标签的时候,怎么才能编辑?
$('.nav').width($(window).width()); $('.nav').height($(window).height()); 当把textarea换成其他标签的时候,怎么才能 ...
- 网页或微信小程序中使元素占满整个屏幕高度
在项目中经常要用到一个容器元素占满屏幕高度和宽度,然后再在这个容器元素里放置其他元素. 宽度很简单就是width:100% 但是高度呢,我们知道的是height:100%必须是在父元素的高度给定了的情 ...
- Android RecycleView添加HeaderView宽度不能撑满屏幕问题
下午做项目的时候,碰到页面布局需要使用RecycleView加HeaderView,本以为很简单东西,却有一个小小的坑:HeaderView布局的宽度不能撑满屏幕! 先看下出现问题的图: 天了噜,我写 ...
- 非自定义和自定义Dialog的介绍!!!
一.非自定义Dialog的几种形式介绍 转自:http://www.kwstu.com/ArticleView/kwstu_20139682354515 前言 对话框对于应用也是必不可少的一个组件,在 ...
随机推荐
- Android Studio快捷键每日一练(3)
原文地址:http://www.developerphil.com/android-studio-tips-of-the-day-roundup-3/ 23.启停用断点 苹果:Cmd+F8 Wi ...
- Razor练习4
今天练习Razor的逻辑处理.一般会使用下面 1. if 2. else 3. else if 4. switch 下面演示中,Insus.NET分别演示1,2, 4:xxx.cshtml代码如下: ...
- Razor练习3
Razor语法中,物质循环处理,它使用到三种: for, while,foreach. 下面Insus.NET分别在ASP.NET MVC环境中列举一个例子,附加源代码: while:<br / ...
- PHP表单数据写入MySQL代码
<h1>插入操作</h1> <?php if(!isset($_POST['submit'])){ //如果没有表单提交,显示一个表单 ?> <form ac ...
- 【Java每日一题】20161104
package Nov2016; public class Ques1104 { private String num; public void setNum(String num){ num = n ...
- maven安装与配置(第一天学习笔记)
Maven下载:http://maven.apache.org/ 1.首先要确保JDK已经安装与配置(注意:用的是apache-maven-3.3.3的JDK1.6不行,我用的是JDK1.8) 2.把 ...
- 第 27 章 CSS 传统布局[上]
学习要点: 1.布局模型 2.表格布局 3.浮动布局 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 早期所使用的传统布局,很多情况下,这些布局方式还是非常有用的. 一.布局模型 在早期没有平 ...
- Android开发中Eclispe相关问题及相应解决(持续更新)
1.Eclipse项目中的Android Private Libraries没有自动生成. 一般而言,在Android开发中,项目中引用到的jar包会放到项目目录中的libs中,引入库会放到Andro ...
- Send push notification on Apple (APNS) on c#.net
原文: http://apns-c-sharp-net-vikram-jain.blogspot.com ======================= Please, Install your ce ...
- ClockPicker – 时钟风格 Bootstrap 时间选择器
ClockPicker 是国内前端开发者发布的一个时钟样式 Timepicker,可以用于 Bootstrap 和 jQuery.所有主流浏览器都支持,包括 IE9+,支持移动设备,能够在触摸屏设备很 ...
