当前位置: 移动技术网 > IT编程>移动开发>Android > Android 中从屏幕左下角弹出Dialog动画效果的实现代码

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

贷款卡年审报告书,刘惜君是哪里人,pgd-619

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动画效果的实现代码,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网