Android实现动画Dialog

案例为动画实现Dialog退出APP

Activity

package com.mingrisoft.animdialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.Button;public class MainActivity extends Activity {private Button button_determine, button_cancel;      //定义对话框按钮private AlertDialog dlg;                               //定义对话框@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/*** 判断当单击手机返回按钮时,从手机顶部向下移动对话* 再次单击返回按钮,对话框将从中间向底部移动消失对话框*/@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {//判断如果单击了返回按钮if (keyCode == KeyEvent.KEYCODE_BACK) {//创建对话框实例dlg=new AlertDialog.Builder(this).create();dlg.show();                             //显示对话框Window window = dlg.getWindow();        //获取对话框窗口window.setGravity(Gravity.CENTER);     //此处设置dialog显示在中心位置window.setWindowAnimations(R.style.mystyle);      //添加动画window.setContentView(R.layout.dialog_layout);   //设置对话框布局文件//获取对话框确定按钮button_determine = (Button) window.findViewById(R.id.btn_determine);//获取对话框取消按钮button_cancel = (Button) window.findViewById(R.id.btn_cancel);initEvent();                                       //调用初始化事件方法}return super.onKeyDown(keyCode, event);}/*** 该方法出事对话框中按钮的事件,单击确定按钮退出该应用* 单击取消按钮,对话框将移动至底部消失*/private void initEvent() {button_determine.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dlg.dismiss();          //对话框移动到底部消失finish();               //关闭当前应用}});button_cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dlg.dismiss();          //对话框移动到底部消失}});}
}

dialog_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:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:orientation="vertical"><!--标题--><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingTop="20dp"android:text="@string/text_title1"android:textColor="@color/black"android:textSize="16sp" /><!--提示文字--><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingBottom="50dp"android:paddingLeft="20dp"android:paddingRight="20dp"android:paddingTop="20dp"android:text="@string/text_title2"android:textColor="@color/blue"android:textSize="20sp" /><!--线--><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="@color/yellow" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><!--确定按钮--><Buttonandroid:id="@+id/btn_determine"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:background="@null"android:text="@string/text_btn_determine"android:textColor="@color/orange"android:textSize="20sp" /><!--线--><Viewandroid:layout_width="1dp"android:layout_height="match_parent"android:background="@color/yellow" /><!--取消按钮--><Buttonandroid:id="@+id/btn_cancel"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:background="@null"android:text="@string/text_btn_cancel"android:textColor="@color/orange"android:textSize="20sp" /></LinearLayout></LinearLayout>

动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><!--从中间到底部退出--><translateandroid:fromYDelta="0"android:toYDelta="100%"android:duration="200"/>
</set><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><!--从上进入到中间--><translateandroid:duration="200"android:fromYDelta="-100%"></translate>
</set>

Style

<resources><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style><style name="mystyle" parent="android:Animation"><!--进入时的动画--><item name="@android:windowEnterAnimation">@anim/dialog_enter</item><!--退出时的动画--><item name="@android:windowExitAnimation">@anim/dialog_exit</item></style></resources>

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"tools:context="com.mingrisoft.animdialog.MainActivity"></RelativeLayout>

color XML

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="colorPrimary">#3F51B5</color><color name="colorPrimaryDark">#FF5B3F</color><color name="colorAccent">#FF4081</color><color name="black">#000000</color><color name="blue">#475764</color><color name="yellow">#D2AA8C</color><color name="orange">#F16D27</color>
</resources>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React对标签属性进行限制(props)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>对props进行限制</title> </head> <body><!-- 准备好一个“容器” --><div id"test1"></div><div …

服务的协作:服务间的消息传递——《微服务设计》读书笔记

在微服务集成——《微服务设计》读书笔记文章中&#xff0c;我们说过服务间的消息传递有几种方式&#xff0c;一种是请求/响应技术&#xff0c;另一种是基于事件的机制。 RPC&#xff08;远程过程调用&#xff09; RPC是Remote Procedure Call的简称。 这是请求/响应技术的一种…

事务、视图和索引

一、事务&#xff1a; 1.概念&#xff1a;是作为单个逻辑工作单元执行的一系列操作 2.多个操作作为一个整体向系统提交&#xff0c;要么都执行&#xff0c;要么都不执行。 3.事务是一个不可分割的工作逻辑单元。 二、事务的四个特性&#xff1a; 1.原子性 2.一致性 3.隔离性 4.…

jdbc事务和事务的隔离级别

转载自 jdbc事务和事务的隔离级别 在jdbc的使用中以最简单的jdbc的使用为例&#xff0c;说明了jdbc的具体用法。然而在通常项目中&#xff0c;需要考虑更多内容&#xff0c;例如事务。 事务&#xff0c;在单个数据处理单元中&#xff0c;存在若干个数据处理&#xff0c;要么整…

Android自定义View画钟表

第一种使用背景表盘 主要代码&#xff1a; package com.zjs.zidingyiview; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Handler; import android.os.Message; impo…

记录程序人生

许久&#xff0c;没有在博客上发关于自己的记录了。 以前还是经常在博客上写长篇大论来记录生活的&#xff0c;其中有几篇博文被学生和其他朋友们都做一个励志来勉励自己的&#xff0c;我不由的感到自豪。 那时候在上学&#xff0c;貌似在上班之后就没有在写过类似“励志”的…

理解C# 4 dynamic(3) – DynamicObject的使用

上篇文章"理解C# 4 dynamic(2) – ExpandoObject的使用" 了解了xpandoObject的基本使用。但ExpandoObject的问题就是它是一个万金油&#xff0c;什么都可以做&#xff0c;但是又都不专注。使用DynamicObject正好可以解决这个问题。这篇文章介绍DynamicJson是如何继承…

jsx中的注释的写法

{}表示里面要写js语句 js语句里面的注释为/**/

Java中的位移运算

位移运算符 左移 “a<<b”将二进制形式的a逐位左移b位&#xff0c;最低位空出来的b位补0。 带符号右移 “a>>b”将二进制形式的a逐位右移b位&#xff0c;最高位空出来的b位补原来的符号位。 无符号右移 “a>>>b”将二进制形式的a逐位右移b位&#xff0c…

sqlserver存储过程

一、存储过程 1.预先存储好的sql程序&#xff0c;保存在sqlserver中&#xff0c;通过名称和参数执行。 2.存储过程中可以包含&#xff1a;insert语句&#xff0c;update语句&#xff0c;delete语句&#xff0c;select语句&#xff0c;逻辑控制语句以及变量。 二、存储过程的优点…

微软正在用实际行动告诉你: 拥抱开源,微软是认真的

2017年4月19日至20日&#xff0c;由工业和信息化部指导、中国信息通信研究院主办、云计算开源产业联盟承办的"全球云计算开源峰会"在国家会议中心举行。微软.NET CORE开发平台荣获由峰会云计算开源产业联盟(OSCAR) 评选出的“尖峰开源技术”奖&#xff0c;标志着国内…

初识Windows程序

一、创建windows应用程序的步骤 1.新建项目 2.项目类型为C#项目 3.模板为windows应用窗体 二、构造方法&#xff1a; 语法&#xff1a;访问修饰符 类名(){} 三、命名规范前缀&#xff1a; 标签–>lable–>lbl 文本框–>textbox–>txt 组合框–>combobox–>cb…

React不提交表单并且获取表单中的数据

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>1_非受控组件</title> </head> <body><!-- 准备好一个“容器” --><div id"test"></div><!-- 引入…

Java中数组的赋值方式

方法一&#xff1a; 使用默认是初始值来初始化数组中的每一个元素 语法&#xff1a;数组元素类型 [ ] 数组名 new 数组元素类型[数组中元素的个数&#xff08;数组的长度&#xff09;] int [ ] number new int [10]; 方法二&#xff1a; 先赋值&#xff0c;然后在赋予默认的初…

分布式系统Paxos算法

转载自 分布式系统Paxos算法 这是一个有关Paxos算法非常形象的讲解与示范。Paxos是能够基于一大堆完全不可靠的网络条件下却能可靠确定地实现共识一致性的算法。也就是说&#xff1a;它允许一组不一定可靠的处理器&#xff08;服务器&#xff09;在某些条件得到满足情况下就能…

winform实现简单的计算器V1版本

最近在整winform程序&#xff0c;就做了些简单的案例出来&#xff0c;比如说下面的这个计算器&#xff1a; 这个的实现方式还是比较简单的。 首先按照图中的界面从工具箱中拉出来一个窗体&#xff0c;其中的显示结果“86”“1849”也是lable控件&#xff0c;最后放一个计算的…

用.netcore写一个简单redis驱动,调试windows版本的redis

1. 下载windows版本的redis 2.开发环境vs2017 新建一个 .net core控制台。 private static Socket socket new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); private static BufferedStream buffer null; socket.NoDelay true; s…

JAVA封装性

1、封装性的概念 &#xff08;1&#xff09;封装性是面向对象思想的三大特征之一 &#xff08;2&#xff09;封装就是隐藏实现细节&#xff0c;仅对外提供访问接口。 &#xff08;3&#xff09;属性的封装、方法的封装、类的封装、组件的封装、模块化的封装、系统级封装。 2、封…

分布式系统的Raft算法

转载自 分布式系统的Raft算法 过去, Paxos一直是分布式协议的标准&#xff0c;但是Paxos难于理解&#xff0c;更难以实现&#xff0c;Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑。 来自Stanford的新的分布式协议研究称为Raft&#xff0c;它是一个为真实世界应…

React类里面能写的东西

1.一般方法 2.赋值语句 3.静态方法 4.构造函数