android-自定义dialog&进入退出动画
来源:互联网 发布:我知你好张国荣 编辑:程序博客网 时间:2024/05/17 21:43
dropDialg: 从顶部下落到屏幕中间进入,退出从屏幕中间下落消失
效果如图
代码实现
① 自定义drop dialog
注意自定义dialog继承自AppCompatDialog
public class MyDialog extends AppCompatDialog { public MyDialog(Context context) { super(context, R.style.mydialog); } @Override protected void onCreate(Bundle savedInstanceState) { supportRequestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.layout_mydialog); DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); int widthPixels = metrics.widthPixels; int heightPixels = metrics.heightPixels; WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.gravity = Gravity.CENTER; layoutParams.width = (int) (widthPixels / 2.0f); layoutParams.height = (int) (heightPixels / 4.0f); getWindow().setAttributes(layoutParams); initView(); } private void initView() { Button btnDis = (Button) findViewById(R.id.id_btn_dis); btnDis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); }}
② R.style.myDialog
<style name="mydialog" parent="AlertDialog.AppCompat"> <item name="android:windowAnimationStyle">@style/dialog_enter_exit</item> </style> <style name="dialog_enter_exit" parent="android:Animation"> <item name="android:windowEnterAnimation">@anim/pop_enter</item> <item name="android:windowExitAnimation">@anim/pop_exit</item> </style>
③ 进入动画 pop_enter.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="500" android:fillAfter="true" android:fromYDelta="-50%p" android:toYDelta="0%p" /></set>
④ 退出动画 pop_exit.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <translate android:duration="500" android:fillAfter="true" android:fromYDelta="0%p" android:toYDelta="100%p" /></set>
⑤ R.layout.layout_mydialog
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#33ffff" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="dialog" /> <Button android:id="@+id/id_btn_dis" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="dismiss" /></LinearLayout>
bottomDialog: 从屏幕底部弹出,从屏幕底部消失
效果图:
代码实现:
和dropDialog相比,改变的是
layoutParams.gravity = Gravity.BOTTOM;和
pop_enter.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="500" android:fillAfter="true" android:fromYDelta="100%p" android:toYDelta="0%p" /></set>
还有pop_exit.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <translate android:duration="500" android:fillAfter="true" android:fromYDelta="0%p" android:toYDelta="100%p" /></set>
① 自定义dailog,继承自AppCompatDialog
public class MyDialog extends AppCompatDialog { public MyDialog(Context context) { super(context, R.style.mydialog); } @Override protected void onCreate(Bundle savedInstanceState) { supportRequestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.layout_mydialog); DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); int widthPixels = metrics.widthPixels; int heightPixels = metrics.heightPixels; WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.gravity = Gravity.BOTTOM; layoutParams.width = widthPixels; layoutParams.height = (int) (heightPixels / 3.0f); getWindow().setAttributes(layoutParams); initView(); } private void initView() { Button btnDis = (Button) findViewById(R.id.id_btn_dis); btnDis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); }}
② R.style.mydialog
<style name="mydialog" parent="AlertDialog.AppCompat"> <item name="android:windowAnimationStyle">@style/dialog_enter_exit</item> </style> <style name="dialog_enter_exit" parent="android:Animation"> <item name="android:windowEnterAnimation">@anim/pop_enter</item> <item name="android:windowExitAnimation">@anim/pop_exit</item> </style>
③ anim: pop_enter.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="500" android:fillAfter="true" android:fromYDelta="100%p" android:toYDelta="0%p" /></set>
④ anim: pop_exit.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <translate android:duration="500" android:fillAfter="true" android:fromYDelta="0%p" android:toYDelta="100%p" /></set>
⑤ layout布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#33ffff" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="dialog" /> <Button android:id="@+id/id_btn_dis" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="dismiss" /></LinearLayout>
0 0
- android-自定义dialog&进入退出动画
- android activity进入退出动画自定义
- 自定义Dialog 并且设置Dialog的进入和退出的动画效果
- dialog、activity等进入、退出动画实现
- android设置dialog显示和activity进入退出的动画效果
- 利用Theme自定义Activity进入退出动画
- 利用Theme自定义Activity进入退出动画
- 利用Theme自定义Activity进入退出动画
- 【学习笔记】设置dialog进入和退出动画
- 代码设置Dialog的进入和退出动画
- dialog动态进入、退出
- android 自定义dialog,窗口动画
- android 自定义dialog,窗口动画
- android 自定义dialog,窗口动画
- android 自定义dialog,窗口动画
- android 自定义dialog,窗口动画
- Android自定义Dialog动画入场
- Android过渡动画之进入退出
- Hive文件存储格式 :Parquet sparksql ,impala的杀手锏
- Echarts统计图插件在php中的应用
- vim的ex模式命令的补充知识
- 机器视觉开源代码集合
- oracle增加表空间大小两种方法
- android-自定义dialog&进入退出动画
- Java基础知识总结(绝对经典)
- linux下查看文件内容工具
- <Principles of fMRI 1>课程笔记2--fMRI数据结构
- 左神的书——《程序员代码面试指南》之用一个栈实现另一个栈的排序c++实现
- Mac 强制删除应用命令
- HTML5经典坦克大战及源码
- Codeforces Round #386 (Div. 2)(A+B)
- Asm Shader Reference --- Shader Model 1 part