android Animation 动画。淡出动画

淡出动画

protected void startHotelNearByIconAnim() {AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);//初始化操作,参数传入0和1,即由透明度0变化到透明度为1alphaAnimation.setFillAfter(true);//动画结束后保持状态alphaAnimation.setDuration(2000);//动画持续时间,单位为毫秒alphaAnimation.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationRepeat(Animation animation) {}@Overridepublic void onAnimationEnd(Animation animation) {loglinearLayout.setVisibility(View.GONE);}});loglinearLayout.startAnimation(alphaAnimation);//开始动画
}

 

基础动画:

view引用动画方法:

Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
iv.startAnimation(animation);

透明动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><alphaandroid:duration="1000"android:fromAlpha="0.0"android:toAlpha="1.0"/>
</set>

缩放动画2:

/*** 第一个参数fromAlpha为 动画开始时候透明度*第二个参数toAlpha为 动画结束时候透明度*/
Animation animation = new AlphaAnimation(0, 1);
animation.setDuration(1000);

缩放动画:

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

缩放动画2:

/*** 第一个参数fromX为动画起始时 X坐标上的伸缩尺寸* 第二个参数toX为动画结束时 X坐标上的伸缩尺寸* 第三个参数fromY为动画起始时Y坐标上的伸缩尺寸* 第四个参数toY为动画结束时Y坐标上的伸缩尺寸* 说明: 0.0表示收缩到没有;1.0表示正常无伸缩;值小于1.0表示收缩;值大于1.0表示放大* 第五个参数pivotXType为动画在X轴相对于物件位置类型* 第六个参数pivotXValue为动画相对于物件的X坐标的开始位置* 第七个参数pivotXType为动画在Y轴相对于物件位置类型* 第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置*/
Animation animation = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setDuration(1000);

旋转动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><rotateandroid:duration="1000"android:fromDegrees="0"android:pivotX="50%"android:pivotY="50%"android:toDegrees="360" />
</set>

旋转动画2:

/*** 第一个参数fromDegrees为动画起始时角度* 第二个参数toDegrees为动画结束角度* 第三个参数pivotXType为动画在X轴相对于物件位置类型* 第四个参数pivotXValue为动画相对于物件的X坐标的开始位置* 第五个参数pivotXType为动画在Y轴相对于物件位置类型* 第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置*/
Animation animation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setDuration(1000);

位移动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="2000"android:fromXDelta="0"android:fromYDelta="0"android:toXDelta="500"android:interpolator="@android:anim/accelerate_interpolator"android:toYDelta="0" />
</set>

位移动画2:

/*** 第一个参数fromXDelta为动画起始时的x坐标* 第二个参数toXDelta为动画结束时的x坐标* 第三个参数fromYDelta为动画起始时的y坐标* 第四个参数toYDelta为动画结束时的y坐标*/
Animation animation = new TranslateAnimation(0, 500, 0, 0);
animation.setDuration(2000);
/**设置插值器:先加速,后减速**/
animation.setInterpolator(new AccelerateDecelerateInterpolator());
iv.startAnimation(animation);

附:位移动画完成后位置恢复到初始位置的问题

  1. @Override  
  2. protected void onAnimationEnd() {  
  3.     super.onAnimationEnd();  
  4.     FrameLayout.LayoutParams ll = new FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.FILL_PARENT);  
  5.     ll.setMargins(-50, 0, 0, 0);  
  6.     main_layout.setLayoutParams(ll);  
  7.  }  

 

 

位移动画

从左向右进入的动画 left_to_right.xml

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从左向右进入的动画 --><translateandroid:duration="500"android:fromXDelta="-250%"android:toXDelta="0%" /></set>

从右向左退出的动画 right_to_left.xml

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从右向左动画退出动画 --><translateandroid:duration="500"android:fromXDelta="0%"android:toXDelta="-250%" /></set>

从上向下进入的动画 top_to_down.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从上向下进入的动画 --><translateandroid:duration="500"android:fromYDelta="-250%"android:toYDelta="0%" /></set>

从下向上退出的动画 down_to_top.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从下向上动画退出动画 --><translateandroid:duration="500"android:fromYDelta="0%"android:toYDelta="-250%" /></set>

从右向左进入的动画 right_to_left.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从右向左进入的动画 --><translateandroid:duration="500"android:fromXDelta="250%"android:toXDelta="0%" /></set>

从左向右退出的动画 left_to_right.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从左向右动画退出动画 --><translateandroid:duration="500"android:fromXDelta="0%"android:toXDelta="250%" /></set>

从下向上进入的动画 down_to_top.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从下向上进入的动画 --><translateandroid:duration="500"android:fromYDelta="250%"android:toYDelta="0%" /></set>

从上向下退出的动画 top_to_down.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 定义从上向下动画退出动画 --><translateandroid:duration="500"android:fromYDelta="0%"android:toYDelta="250%" /></set>

创建style

 

 

<!-- 分享Dialog -->
<style name="dialog_share" parent="android:Animation"><item name="@android:windowEnterAnimation">@anim/down_to_top</item><item name="@android:windowExitAnimation">@anim/top_to_dow</item>
</style>

进出引用

 

 

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.dialog_scroll_chose);Window window = getWindow();window.setGravity(Gravity.BOTTOM);//设置Dialog在底部显示window.setBackgroundDrawableResource(android.R.color.transparent);//设置背景透明window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);//设置横向全屏window.setWindowAnimations(R.style.dialog_share);//引用animationinit();//初始化
}

单引用

 

Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha);
AnimationSet animationSet2 = new AnimationSet(true);
animationSet2.addAnimation(animation);
imageView.startAnimation(animationSet2);

 

 

 

 

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

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

相关文章

Java内存模型_基础

线程之间的通信机制有两种&#xff1a; 1、共享内存&#xff1a;线程之间共享程序的公共状态&#xff0c;通过写-读内存中的公共状态进行隐式的通信。 2、消息传递&#xff1a;线程之间没有公共状态&#xff0c;线程之间必须发送消息来显示的进行通信 同步&#xff1a;是指程序…

警惕Oracle DB操作高压线

在日常的数据库技术支持工作中&#xff0c;会发现相当部分的数据库事故和人为操作不当有直接的关系。每次的新员工培训&#xff0c;也会用真实案例来说明和强调正确操作习惯的重要性。在强调职业化&#xff0c;推行可服务性的大环境下&#xff0c;了解数据库操作的高压线&#…

centos 宝塔面板 mongodb 设置用户账号密码登录

挂在网上的mongodb测试数据库&#xff0c;默认的无密码&#xff0c;端口直接登录&#xff0c;本来想着不会有人盯上吧&#xff0c;结果&#xff0c;一个月后&#xff0c;被黑客删库了&#xff0c;所以不管是接口&#xff0c;还是数据库的安全性一定要保证&#xff01;&#xff…

android 日期选择器

//出生年月设置 private void birthSetting() {Calendar calendar Calendar.getInstance();calendar.add(Calendar.DAY_OF_YEAR, 1);new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {Overridepublic void onDateSet(DatePicker view, int year, in…

启动activity的标准的action常量及对应的字符串

转载于:https://www.cnblogs.com/ouyangping/p/7481700.html

数据批量导入Oracle数据库

仓库选择使用的加载方法&#xff0c;因为它提供了最快速的途径&#xff08;DIRECT&#xff0c;PARALLEL&#xff09;。现在&#xff0c;我们抛开其理论不谈&#xff0c;用实例来使 您快速掌握SQL*LOADER的使用方法。首先&#xff0c;我们认识一下SQL*LOADER。在NT下&#xff0c…

mongoose 通过账号密码连接 Error: Password contains an illegal unescaped character

mongoose 远程连接&#xff0c;我的密码有乱七八糟的字符&#xff0c;报错Error: Password contains an illegal unescaped character 报错的 mongodb: mongodb://c666:buyaokan###ccav.com:27017/zh_db,改成下面&#xff0c;就好啦 mongodb: mongodb:// encodeURIComponent(…

android 省市区选择器

demo1链接&#xff1a;https://download.csdn.net/download/meixi_android/10819638 效果1——跳页全屏式地区选择器&#xff1a; demo2链接&#xff1a;https://download.csdn.net/download/meixi_android/10823744 样式2——dialog市区选择器&#xff1a; 实现方法&#xf…

CCF - 201703-1 - 分蛋糕

问题描述 试题编号&#xff1a; 201703-1试题名称&#xff1a; 分蛋糕时间限制&#xff1a; 1.0s内存限制&#xff1a; 256.0MB问题描述&#xff1a;   小明今天生日&#xff0c;他有n块蛋糕要分给朋友们吃&#xff0c;这n块蛋糕&#xff08;编号为1到n&#…

mongoose Topology was destroyed 处理

在用 node 的 mongoose 模块操作 mongodb 数据库的时候&#xff0c;本来正常返回数据&#xff0c;但是有时候会返回空白页&#xff0c;控制台里报错&#xff1a; Topology was destroyed数据库连接代码如下&#xff1a; var mongoose require(mongoose); mongoose.connect(m…

windows 下oracle 数据库 rman 备份

明确目标编写rman批处理文件 目标&#xff1a; A 每天夜间2点执行备份 B数据库全备&#xff0c;同时备份控制文件及归档日志文件&#xff0c;备份文件保存至&#xff1a;F:\backup\目录下&#xff0c;并在完成归档日志文件备份后&#xff0c;自动删除已备份的归档日志&#xff…

android xml 解析

创建xml 文件 <root><province name"安徽省"><city name"安庆市"><district name"枞阳县" zipcode"246000" /><district name"大观区" zipcode"246000" /><district name"…

js触发点击事件

最简单的触发单击事件肯定是elem.click()&#xff0c;平时在不需要考虑兼容性的场合我都是这么干的&#xff0c;但是毕竟这个方法有兼容性&#xff08;具体兼容性如何没做过测试&#xff09;&#xff0c;所以还是要掌握一个通用的方法。 以下代码是网上比较容易找到的一段代码&…

MacOS 升级后出现 xcrun: error: invalid active developer path, missing xcrun

升级macOS mojove&#xff0c;终端里使用git的时候&#xff0c;弹出一行莫名其妙的错误&#xff1a; xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun解决方法&am…

windows系统下oracle数据库rman备份记录(实战篇)

在windows 2003系统中装了oracle10G数据库&#xff0c;同时建了多个实例&#xff0c;这个备份应该怎么做呢&#xff1f; 在网上查了N多的资料&#xff0c;终于了解了一些&#xff1a; 冷备&#xff1a;把数据库已执行关闭后&#xff0c;对数据库做全备&#xff1b;需要停机&…