Android 中从屏幕左下角弹出Dialog动画效果的实现代码

 更新时间:2016年12月27日 14:05:34   作者:coder_Bai  
这篇文章主要介绍了Android 中从屏幕左下角弹出Dialog动画效果的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下

MainActivity代码:

import android.app.Dialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity {
private View inflate;
private Dialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
}
public void click(View view) {
 dialog = new Dialog(this,R.style.ActionDialogStyle);
 //填充对话框的布局
 inflate = LayoutInflater.from(this).inflate(R.layout.item_dialog, null);
 //初始化控件
 //将布局设置给Dialog
 dialog.setContentView(inflate);
 //获取当前Activity所在的窗体
 Window dialogWindow = dialog.getWindow();
 //设置Dialog从窗体底部弹出
 dialogWindow.setGravity( Gravity.BOTTOM);
 //获得窗体的属性
 WindowManager.LayoutParams lp = dialogWindow.getAttributes();
 lp.y = 20;//设置Dialog距离底部的距离
 lp.width = WindowManager.LayoutParams.MATCH_PARENT;
//  将属性设置给窗体
 dialogWindow.setAttributes(lp);
 dialog.show();//显示对话框
 }
}

主界面的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="ucai.cn.dialoganimator.MainActivity">
<TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Hello World!"
 android:onClick="click"/>
</LinearLayout>

Dialog布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:src="@drawable/hani_gift_1"
 android:layout_gravity="center"/>
</LinearLayout>

styles代码:

 <style name="ActionDialogStyle" parent="@android:style/Theme.Dialog">
   
<!-- 背景透明 -->
 <item name="android:windowBackground">@android:color/transparent</item>
 <item name="android:windowContentOverlay">@null</item>
 <!-- 浮于Activity之上 -->
 <item name="android:windowIsFloating">true</item>
 <!-- 边框 -->
 <item name="android:windowFrame">@null</item>
 <!-- Dialog以外的区域模糊效果 -->
 <item name="android:backgroundDimEnabled">true</item>
 <!-- 无标题 -->
 <item name="android:windowNoTitle">true</item>
 <!-- 半透明 -->
 <item name="android:windowIsTranslucent">true</item>
 <!-- Dialog进入及退出动画 -->
 <item name="android:windowAnimationStyle">@style/ActionSheetDialogAnimation</item>
</style>
<!-- ActionSheet进出动画 -->
<style name="ActionSheetDialogAnimation" parent="@android:style/Animation.Dialog">
 <item name="android:windowEnterAnimation">@anim/actionsheet_dialog_in</item>
 <item name="android:windowExitAnimation">@anim/actionsheet_dialog_out</item>
</style>

进入动画(左下角开始放大):

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="0"
android:toXScale="100%"
android:fromYScale="0"
android:toYScale="100%"
android:pivotX="0%"
android:pivotY="100%"
/>

退出动画(向下移动):

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200"
android:fromYDelta="0"
android:toYDelta="100%" />

以上所述是小编给大家介绍的Android 中从屏幕左下角弹出Dialog动画效果的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Android使用webView长按保存下载网络图片

    Android使用webView长按保存下载网络图片

    这篇文章主要为大家详细介绍了Android使用webView长按保存下载网络图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 详解Android TableLayout表格布局

    详解Android TableLayout表格布局

    表格布局的标签是TableLayout,TableLayout继承了LinearLayout。所以它依然是一个线性布局,通过本文给大家介绍Android TableLayout表格布局,感兴趣的朋友一起学习吧
    2016-02-02
  • Android实现单项、多项选择操作

    Android实现单项、多项选择操作

    这篇文章主要介绍了Android实现单项、多项选择操作的相关资料,单项选择、多项选择操作在项目开发中经常应用,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • kotlin浅析when与循环的使用

    kotlin浅析when与循环的使用

    这篇文章主要介绍了kotlin语言中when与循环的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Android Support Palette使用详解

    Android Support Palette使用详解

    这篇文章主要介绍了Android Support Palette使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 详解Android如何实现好的弹层体验效果

    详解Android如何实现好的弹层体验效果

    当前 App 的设计趋势越来越希望给用户沉浸式体验,这种设计会让用户尽量停留在当前的界面,而不需要太多的跳转,这就需要引入弹层。本篇我们就来讲讲弹层这块需要注意哪些用户体验
    2022-11-11
  • Android Map新用法:MapFragment应用介绍

    Android Map新用法:MapFragment应用介绍

    MapView ,MapActivity 这种的局限在于,必须要继承MapActivity,否则无法使用MapView,但是,MapFragment 这种的局限在于,必须要安装Google Play Service ,也就是说必须是原生rom。而且sdk要在12以上
    2013-01-01
  • Android实现音频条形图效果(仿音频动画无监听音频输入)

    Android实现音频条形图效果(仿音频动画无监听音频输入)

    这篇文章主要介绍了Android实现音频条形图效果(仿音频动画无监听音频输入)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Android Cocos Creator游戏开发平台打包优化实现方案

    Android Cocos Creator游戏开发平台打包优化实现方案

    Cocos Creator是一款轻量、高效、免费开源的跨平台游戏引擎,同时也是实时3D内容创作平台,不仅支持2D、3D的游戏开发,同时在HMI、IoT、XR、虚拟人偶等领域,均可提供一套完善的行业解决方案
    2022-11-11
  • Android实现文字和图片混排(文字环绕图片)效果

    Android实现文字和图片混排(文字环绕图片)效果

    这篇文章主要介绍了Android实现文字和图片混排的方法,实例分析了文字环绕图片效果的具体功能显示及页面布局实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论