dialog样式的activity,可全屏、可任意大小的dialog实现
2015-10-13 17:24
771 查看
开发中使用到dialog时,我个人是比较厌烦黑黑的系统dialog框的,抽时间就记录下我平时使用的dialog。
<style name="dialog_style" parent="@android:style/Theme.Translucent">
<!-- Dialog的windowFrame框为无 -->
<item name="android:windowFrame">@null</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否半透明 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 是否显示title -->
<item name="android:windowNoTitle">true</item>
<!-- 设置dialog的背景 -->
<item name="android:windowBackground">@drawable/bg</item>
<!-- 背景是否模糊显示 -->
<item name="android:backgroundDimEnabled">false</item>
</style>
android:theme="@style/dialog_style"></activity>
这样就实现了activity的dialog样式。
dialog.setContentView(view);
dialog.show();
WindowManager.LayoutParams lp = win.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = 800;
lp.dimAmount = 0.2f;
win.setAttributes(lp);
如上代码中,可以设置dialog的宽和高,也可以设置透明度等等。
一.实现dialog样式的activity,只需如下两步:
1.定义dialog style
在values/styles文件中定义style:<style name="dialog_style" parent="@android:style/Theme.Translucent">
<!-- Dialog的windowFrame框为无 -->
<item name="android:windowFrame">@null</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否半透明 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 是否显示title -->
<item name="android:windowNoTitle">true</item>
<!-- 设置dialog的背景 -->
<item name="android:windowBackground">@drawable/bg</item>
<!-- 背景是否模糊显示 -->
<item name="android:backgroundDimEnabled">false</item>
</style>
2.在manifest中声明activity时,将activity的theme设置为上面的style:
<activity android:name="com.yp.dialog.DialogActivity"android:theme="@style/dialog_style"></activity>
这样就实现了activity的dialog样式。
二. 实现dialog的可定义大小
1.首先new 一个Dialog对象,style可使用上面style,这里大家可自定义layout。
Dialog dialog = new Dialog(activity,R.style.dialog_style);dialog.setContentView(view);
dialog.show();
2.接下来.去实现dialog的大小设置:
Window win = dialog.getWindow();WindowManager.LayoutParams lp = win.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = 800;
lp.dimAmount = 0.2f;
win.setAttributes(lp);
如上代码中,可以设置dialog的宽和高,也可以设置透明度等等。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories