android设置页面转场特效
由于刚刚学习android studio,做的许多项目涉及到跳转页面,以及使用到各种各样的控件。但是由于单一的样式,控件的交互以及页面的跳转都显得过于单调,使用体验感不强。于是学习了如何进行页面的简单跳转过渡动画以及控件的交互动画。
完成效果如下:
录屏2
制作过程
一、步骤
(1)创建两个页面分别为Mainactivity和Nerk页面
(2)在res文件夹下面创建anim文件,用来存放设计过渡动画的xml文件:
首先在anim文件下创建button_in.xml文件和button_out.xml文件(分别代表向下切入和向上 切出的过渡动画)
然后在button_in.xml文件中加入以下代码(具体原因等下一起说)
<translatexmlns:android="http://schemas.android.com/apk/res/android"android:duration="300"android:fromYDelta="100%p"android:toYDelta="0"/>
然后在button_out.xml文件中加入以下代码:
<translatexmlns:android="http://schemas.android.com/apk/res/android"android:duration="300"android:fromYDelta="0"android:toYDelta="-100%p" />
这样简单的过渡效果就制作好了,那么接下来就是如何使用这个效果了
(3)过渡页面动画的使用
在nerk.xml文件中加入如下xml代码:
<LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:gravity="center_horizontal"><TextViewandroid:id="@+id/heihei"android:layout_width="300px"android:layout_height="200px"android:text="开始"android:textSize="35sp"android:gravity="center"></TextView>
</LinearLayout>
然后在Nerk.java文件中给id为“heihei”的textview控件添加点击事件,在点击事件中加入如下代码:
其中,Intent(Nerk.this,MainActivity.class),表示设置页面跳转,即从Nerk页面跳转到Mainactivity页面。而
overridePendingTransition(R.anim.button_in, R.anim.button_out);
则表示加载改跳转动作的动画样式 ,切入动画为anim文件下的button_in.xml设置的动画,切出动画则为anim文件下的button_out.xml设置的动画。到此,页面的动画专场就完成了
同理
在Mainactivity.xml文件中加入如下xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:gravity="center_horizontal"><TextViewandroid:id="@+id/back"android:layout_width="300px"android:layout_height="200px"android:text="返回"android:textSize="35sp"android:gravity="center"></TextView><TextViewandroid:layout_width="match_parent"android:layout_height="300px"android:background="#ff0f0f"android:id="@+id/text1"></TextView>
</LinearLayout>
给id为R.id.back的textview控件添加点击事件,在事件中添加如下代码
finish();
overridePendingTransition(R.anim.button_in, R.anim.button_out);
则完成了返回页面的动作。
二、解释
在开始编写的button_in和button_out文件中添加的translate控件,表示过渡动画的设置:
android:duration:设置的是动画的时间,300表示300ms
android:fromYDelta和android:toYDelta则设置垂直方向的动画平移
而参数中的100%p和0用以下这张图简单解释
定义的是开始位置fromYDelta到toYDelta的位置,同理也可以设置fromXDelta到toXDelta,表示的是左右方向的过渡动画。
三、控件的出场动画
同理,该过渡动画不仅仅只能设置在转场页面的过渡之中,在页面加载时候,控件的出场也可以同样设置,例如上面截取的视频中,Mainactivity页面中红色块textview的出场则为x轴方向的平移,从屏幕的右方慢慢平移到屏幕中间。
在anim文件下的xml文件内容均相同,一样设置动画,但是在引用方面不同
TextView te=findViewById(R.id.text1);
Animation animation=AnimationUtils.loadAnimation(MainActivity.this,R.anim.list_first_move);
te.setAnimation(animation);
首先用Animation类加载anim文件中的xml样式文件,然后利用setAnimation方法给控件添加刚刚加载的Animation动画效果。则设置完成
总结
在小程序的制作中,控件的动画样式和页面的转场样式都很重要,因为在app的使用过程中,这些动画的出现频率非常高,而且能大大提高用户的使用体验。本文章只是简单介绍了动画的设置和使用,具体的动画效果可以自行添加和设置,但是原理都是一样的。
android设置页面转场特效相关推荐
- Android设置页面Preference出现红色下划线
昨天发现了一个问题,在设置的关于设备选项中,有一栏是设备名称,在修改为非英文单词后,上下滑动,会出现一条红色下划线提示,如下图所示 经过博主的摸索发现,这是由于Android的拼写检查服务造成的,在设 ...
- Android设置页面PreferenceFragment使用详细+代码分析
Android设置页面PreferenceFragment使用详细 文章目录Android设置页面PreferenceFragment使用详细一 设置页面核心代码二 设置页面布局核心代码三Settin ...
- android 设置全局的页面切换动画问题
这两天在看android 设置页面切换动画,看的很纠结,晕菜了 我这里有四个手机, 一加 版本 5.1.1 小米2s 版本 5.0 华为P6 版本 4.4.2 酷派版本 4. ...
- 怎样自定义设置EDIUS中2D转场特效
初学EDIUS视频编辑软件的小伙伴相信通过小编写的EDIUS教程一定是已经了解到了转场的基本原理和特殊的操作方法了吧,现在我们就去更深层次地去了解下它吧.今天我们就来看一下EDIUS 2D转场自定义设 ...
- 用离屏canvas制作仿Prezi页面转场动画特效
用离屏canvas制作网站页面特效.仿Prezi转场特效 首屏效果 页面切换转场效果 · 首屏圆形循环扩散效果 首屏效果的难点在于圆形循环扩散动画和贝塞尔曲线的绘制.圆形逐渐扩大的动画并不难,关键在于 ...
- android 页面icon拉伸_所有同学!注意咯!!设计师不可忽略的页面转场来咯!!...
点击上方蓝字关注 + 点击右上方"..."设为星标 嗨小伙伴们大家周末好!☀️不可忽略的页面转场来咯!!所有同学!注意咯!今天小编Cosplay李佳琦带货的style来介绍这篇文章 ...
- 如何直接打开android系统的wifi设置页面,防止intent劫持
在android的app开发中,经常会遇到需要跳转至系统设置页面的需求.但是当你使用以下代码时: 如 Intent intent = new Intent(Settings.ACTION_WIFI_ ...
- android 页面icon拉伸_页面转场: 忽略它可能会使你犯错
转自:和出此严(ID:Hechu618) 作者: 和出此严 不知各位产品经理.UE/UI设计师在设计产品时,除了考虑交互说明.功能状态.页面逻辑等之外,是否会关注 页面跳转间的"转场效果&q ...
- Android中FlowLayout的使用方法,监控布局大小并设置页面高度
博客来源: 工作中需要动态的为页面插入提示语,并根据提示语的不同进行换行操作.提示语数量不同,长度不同,那么就需要页面具有流动性 话不多说,上代码 这是一个工具类,复制进行小修改即可[下方有我调用参考 ...
最新文章
- 全长转录组之基因和转录本鉴定
- 一个java文件中可包含多个main方法
- ImportError: cannot import name *
- C#LeetCode刷题之#383-赎金信(Ransom Note)
- 鼎信诺oracle_鼎信诺审计系统操作说明
- numpy二维数组改变某些数_机器学习:Python常用库——Numpy库
- 在大厂工作5年的大神,给前端初学者的四大建议
- Android入门(四)UI-创建自定义控件
- 毕设题目:Matlab手势识别
- 系统集成项目管理工程师考试英语吗?
- LBP算法及其改进算法
- PB:玉米气生根分泌物支持的高效生物固氮
- webpack4.0核心概念(七)———— “devtool:source-map“
- 写贺卡给毕业师姐怎么写计算机系的,师哥送下一届毕业的寄语
- python plc fx5u_三菱PLC FX5U定位编程时的注意事项说明
- 手游代理路上容易遇到哪些坑
- php留言本在线制作,Flash+php+mysql简单留言本制作
- 信息系统开发与管理【五】之 系统分析
- 批处理将生词导入金山词霸生词本!
- 那些年,我们用过最好的视频播放器