安卓实习第五天

本文介绍如何使用overridePendingTransition方法自定义Android应用中Activity之间的过渡动画效果,并提供了具体的XML动画实现示例。

1.EditText不弹出软键盘直接跳转到另一个Activity

android:focusableInTouchMode="false"

2.修改页面跳转的切换效果

从一个 Activity 跳转到另一个 Activity 通常是通过 Intent 和 startActivity() 方法来切换页面,Android 提供一个方法叫做 overridePendingTransition(int enterAnim, int exitAnim),通过这个方法可以重写 Activity 的过渡/切换动画,但这个方法一般教程都说要紧随 startActivity 方法或者 Activity 的 finish 方法调用。所以一般的方法是:

在 Activity1中,startActivity 之后一行写 overridePendingTransition(int enterAnim, int exitAnim),这样确实能够正常按照规定的动画启动 Activity2,但是 Activity2 退出的时候,并没有调用我们设定的 exitAnim,所以我发现最好的方法是,在 Activity2 的 onCreat 方法中,在调用以下代码之前

<span style="font-size:18px;">super.onCreate(bundle);</span>

写上例如我这样的代码:

<span style="font-size:18px;">// 我设置了两个动画资源文件作为启动动画和退出动画
overridePendingTransition(R.anim.scale_in, R.anim.alpha_out);</span>

之后还不够,还得重写下 Activity2 的 finish() 方法:
<span style="font-size:18px;">@Override
publicvoid finish() {
    super.finish();
    // 仍然是这句,但不得不再写一遍,否则退出的时候,会调用成 scale_in 的反向动画,读者可以做实验试试
    overridePendingTransition(R.anim.scale_in, R.anim.alpha_out);
}</span>


这样以后就大功告成了,你在 Activity1 中只要调用 startActivity 即可,不用紧接overridePendingTransition(int enterAnim, int exitAnim) 方法,即可完成想要的 Activity2 启动动画和退出动画的设定。

至于,overridePendingTransition(int enterAnim, int exitAnim) 的参数,就是两个资源文件,用 xml 文件来定义,我的是这样的,直接给出参考,大家一看就懂。但首先你得在 res 文件夹下,建立一个文件夹叫做 anim,再在 anim 文件夹下面建立两个 xml 文件,如下:

scale_in.xml

<span style="font-size:18px;"><?xmlversion="1.0"encoding="utf-8"?>
<setxmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/decelerate_interpolator"
        android:fromXScale="0.0"
        android:toXScale="1.0"
        android:fromYScale="0.0"
        android:toYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="0"
        android:duration="200"
        android:fillAfter="true"
        android:fillEnabled="true"
        />
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="200"
        />
</set></span>


alpha_out.xml

<span style="font-size:18px;"><?xmlversion="1.0"encoding="utf-8"?>
<setxmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:duration="300"
        />
</set></span>


我只是教会你好的方法,更多 xml 定义的动画,你可以参考:


社区团购系统-毕业设计,基于Python+Django+Vue+MySql开发,源码+数据库+开题报告+毕业论文+视频演示本课题是根据用户的需要以及网络的优势建立的一个社区团购系统,来满足用户团购的需求。本社区团购系统应用Python技术,MySQL数据库存储数据,基于Django框架开发。在网站的整个开发过程中,首先对系统进行了需求分析,设计出系统的主要功能模块,其次对网站进行总体规划和详细设计,最后对基于Django的社区团购系统进行了系统测试,包括测试概述,测试方法,测试方案等,并对测试结果进行了分析和总结,进而得出系统的不足及需要改进的地方,为以后的系统维护和扩展提供了方便。本系统布局合理、色彩搭配和谐、框架结构设计清晰,具有操作简单,界面清晰,管理方便,功能完善等优势,有很高的使用价值。本基于Django的社区团购系统主要满足两种用户的需求,这两种用户分别为管理员和用户,下面将对这两种用户分别实现的功能进行详细的阐述。(1)用户:用户在系统前台可查看系统信息,包括首页、商品信息、团购信息、网站资讯等,注册登录后主要功能模块包括客服售后、购物车、商品收藏、支付购买、我的订单、我的地址以及我的收藏。(2)管理员:管理员登录后可对系统进行全面的管理,主要功能模块包括个人中心、用户管理、商品类别管理、商品信息管理、团购类别管理、团购信息管理、供应商管理、系统管理以及订单管理。关键词:Django框架;社区团购;MySQL数据库;Python技术;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值