Dialog基本使用
来源:互联网 发布:如何更改淘宝店铺名称 编辑:程序博客网 时间:2024/06/03 19:23
基础
动画
通过android:windowEnterAnimation与android:windowExitAnimation可以定义dialog的动画。如下:
<style name="dialogAnimation"> <item name="android:windowEnterAnimation">@anim/dialog_enter</item> <item name="android:windowExitAnimation">@anim/anim_exit</item> </style>应用
Dialog d = new ProgressDialog(MainActivity.this); Window window = d.getWindow();//得到window params = (WindowManager.LayoutParams)window.getAttributes(); params.windowAnimations = R.style.dialogAnimation;//引用style文件的id
ProgressDialog
它是进度条对话框,因为在该对话框上含有一个进度条。因此,它主要是用来在执行一些耗时操作时显示的。如:删除信息时.
其中的进度条默认是圆形的。
示例:
final ProgressDialog dialog = new ProgressDialog(this);dialog.setMax(100);//为进度条设置最大值//将圆形有进度条改成横条状dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);dialog.show();final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();service.scheduleAtFixedRate(new Runnable() {public void run() {//使进度条每次都增加1dialog.incrementProgressBy(1);if (count == 100) {service.shutdown();dialog.dismiss();}count++;}}, 4000, 100, TimeUnit.MILLISECONDS);
也可以为ProgressDialog设置按钮:
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "12", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {}});dialog.setButton(DialogInterface.BUTTON_POSITIVE, "fda", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {}});
DatePickerDialog
选择时间的dialog。样式如下:
代码如下:
DatePickerDialog dialog = new DatePickerDialog(this, new OnDateSetListener() {public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {System.out.println("onDateSet");}//当点击下面的完成按钮时.monthOfYear是从0到11.超过11会顺延到下一年}, 2012, 11, 1);dialog.show();
TimePickerDialog
与DatePickerDialog显示的类似。只不过它是显示一天的时间。从参数就可以看出。示例如下:
TimePickerDialog dialog = new TimePickerDialog(this, new OnTimeSetListener() {public void onTimeSet(TimePicker view, int hourOfDay, int minute) {System.out.println('a'+"-----");}}, 13, 66, false);dialog.show();
自定义Dialog
虽然通过Builder中的setView与setCustomTitle()可以实现一定的自定义,但是这并不能完全实现自定义,如:要实现一个圆角的Dialog。
具体步骤:
1,new一个dialog,并在new的时候传入一个style。
2,用第一步得到的dialog调用setContentView()。
3,用第一步得到的dialog调用show()即可。
style文件
<style name="MyDialog" parent="@android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> </style>
其中:
android:windowBackground设置的便是dialog的背景。因此,可以为dialog设置任意背景。
示例
final Dialog dialog = new Dialog(MainActivity.this,R.style.MyDialog);View v2 = View.inflate(MainActivity.this, R.layout.dialog, null);v2.findViewById(R.id.dialog_button_cancel).setOnClickListener(new OnClickListener() {public void onClick(View v) {dialog.dismiss();}});dialog.setContentView(v2);dialog.show();
这样就自定义了一个dialog。这个dialog显示的内容就是R.layout.dialog所指定的。
常见问题
使用该方法自定义dialog时,会发现dialog的占据的位置过小。这可以通过设置LayoutParams来改变。如下:
Dialog dialog = new Dialog(MainActivity.this,R.style.DialogStyle);View content = View.inflate(MainActivity.this,R.layout.dialog_content, null);LayoutParams lp = new LayoutParams();//WindowManager.LayoutParamslp.width = 300;//单位dplp.height = LayoutParams.WRAP_CONTENT;dialog.setContentView(content, lp);dialog.show();其中的LayoutParams是WindowManager的内部类。
0 0
- Dialog基本使用
- jquery dialog 基本使用
- Dialog基本使用
- Dialog的基本使用
- Android Dialog的基本使用
- Dialog(一)——对话框(Dialog)基本使用
- 在Dialog(基本对话框)中使用BCMenu
- 使用dialog
- dialog控件基本用法
- android dialog 基本演示
- Android_基本组件-dialog
- Dialog 使用技巧(asynchronous dialog)
- Android 对话框Dialog的使用,最基本,最基础的使用
- Android 基本控件 Dialog 对话框
- 自定义dialog的基本用法
- 自定义的基本的dialog
- android开发中-使用Dialog managed dialog
- 使用dialog fragments方式创建Dialog
- 堆栈
- IPC通信:Posix共享内存1
- Java软件开发基础知识梳理之(7)------Hibernate查询数据
- java方法重载 的解释
- c++ 字符 数值拼接
- Dialog基本使用
- 嗯哼哼哼
- SQL的Join
- 三维旋转矩阵的计算
- HibernateTemplate与HibernateDaoSupport详解
- BULK INSERT如何将大量数据高效地导入SQL Server
- codeforces Round #238(div2) A解题报告
- DBI接口与DPI接口与DSI接口
- spm使用之八谈谈spm doc watch的调用过程